Laravel 11
Published: 2024-03-16 02:39:55

Enfim, chegou.
A versão 11 da Framework PHP mais conhecida do mundo foi liberada esta semana, mais precisamente no dia 12/03.

Por padrão, o suporte a correções de erros é fornecido por 18 meses e correções de segurança por até 2 anos.

Por essa razão, recomenda-se a atualização para aplicações que utilizem versões anteriores à 9 da framework, que deixou de ter suporte a correções de segurança em 6 de fevereiro deste ano (2024).

A tabela a seguir traz a política de segurança para a framework.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ztl9qix8bgws684isg8a.jpg)

---

## Banco de dados padrão da aplicação

Acostumado a ver a dupla Laravel/MySQL desde os primórdios da framework, confesso que fiquei surpreso com a mudança para o SQLite a partir da versão 11.

Por conta desta mudança, um ajuste no PHP será necessário.

Mas não se preocupe porque é uma tarefa bem simples e pode ser realizada com qualquer editor de textos.

No computador, abra a pasta de instalação do PHP que você estiver utilizando e localize o arquivo _php.ini_. Navegue no arquivo até encontrar a linha que contenha esta informação:

```
;extension=pdo_sqlite;
```

Descomente a linha removendo o ponto-e-vírgula do início, ficando conforme a seguir:

```
extension=pdo_sqlite;
```
Salve o arquivo, fechando-o em seguida.

---

Já, do lado do Laravel, dois arquivos foram modificados. 

O primeiro contém as configurações de acesso a vários bancos de dados bem como especifica qual será o banco de dados padrão da aplicação.

Estamos falando do _config/database.php_.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0sgi2265iyytzk1tcjz7.jpg)

E o segundo é o arquivo de configuração das variáveis de ambiente da aplicação, mais conhecido como _.env_.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ymozp4ay5jtsxnhdcyc4.jpg)

Perceba que neste segundo arquivo, as informações para conexão com MySQL estão comentadas enquanto que a variável DB_CONNECTION está definida para SQLite.

---

## Instalando

O processo de instalação para a versão 11 do Laravel não mudou e pode ser feita pelo [Composer](https://getcomposer.org/), que é o gerenciador de dependências do PHP.

Após a instalação de um novo projeto, iniciamos o servidor e nos deparamos com esta página de boas vindas:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s8gyu62df97zl87dpjql.jpg)

Com o novo projeto instalado, pude notar que as maiores mudanças foram estruturais, otimizando a organização dos arquivos e melhorando outros aspectos da aplicação, como por exemplo, o incremento de 4 comandos novos para o Artisan:

```
php artisan make:class
php artisan make:enum
php artisan make:interface
php artisan make:trait
```
Os comandos criam, respectivamente, classes, enumeradores, interfaces e 'traits' (trechos de códigos utilizados com frequência).

---

Outra melhoria é o suporte a conversão dos modelos utilizando métodos em detrimento às propriedades, simplificando as definições de conversão. A documentação oficial para esta melhoria pode ser consultada [aqui](https://laravel.com/docs/11.x/upgrade#eloquent-model-casts-method).


---

Há ainda outros aspectos desta versão que trarei em breve.

Boa leitura e até breve. :sunglasses: