DEV Community

Lucien Risso Correia
Lucien Risso Correia

Posted on

Laravel 11

Laravel 11 chegou com algumas mudanças que posso dizer "finalmente" e umas outras "pra que isso?".


Controller simplificado

O controller base foi simplicado, não extendendo o Controller interno do Laravel, sendo assim quando precisar do AuthorizesRequests ou do ValidatesRequests precisará adicionar a cada controller que for utilizar.

Rate limit em segundos

Agora é possível definir rate limits em segundos em vez de minutos, utilizando o Limit::perSecond().

Novos comandos de criação do artisan

Agora temos comando para criação de class, enum, interface e trait:

php artisan make:class
php artisan make:enum
php artisan make:interface
php artisan make:trait
Enter fullscreen mode Exit fullscreen mode

Helper once

Agora você pode cachear um retorno de função e sempre ter o mesmo retorno nas chamadas subsequentes:

function random(): int
{
    return once(function () {
        return random_int(1, 1000);
    });
}

random(); // 123
random(); // 123 (cached result)
random(); // 123 (cached result)
Enter fullscreen mode Exit fullscreen mode

Menos arquivos padrões

Se olhar a pasta app/Http vai ver somente o controller agora, sem o Kernel.php e a pasta Middlewares.

Campo 'password' pode ser com outro nome agora

Finalmente, depois de anos de espera os Devs BRs que cairam num projeto que o banco é em português poderão utilizar o nome da coluna senha na tabela de usuario como 'senha' em vez de 'password'. O método getAuthPasswordName() foi adicionado ao Authenticatable permitindo alterar o nome da propriedade da senha.

Migrations de alterações ficaram mais chatinhas

Agora toda vez que alterar uma coluna pela migration precisará reescrever todas as alterações anteriores novamente para não voltar ao padrão. Digamos que na criação foi adicionado um comentário na coluna, e em uma migration posterior você altera para ter um valor padrão, para não perder o comentário terá que chamar o método novamente ou irá voltar para o padrão que é sem comentário. Particulamente achei isso ruim.

MariaDB

Agora o Laravel possui um driver específico pro MariaDB, em vez de utilizar o driver do MySQL agora pode utilizar o mariadb nas configurações do banco. O que isso muda por enquanto é em relação ao uuid, mas futuramente deverá ter mais coisas específicas pro banco.

Carbon 3

Agora o Laravel suporta tanto o Carbon 2 quanto o Carbon 3, só atulizar nas dependencias do composer e fazer os ajustes conforme a documentação do Carbon no que precisar.

Registro de Providers

Agora o registro de providers foi movido para o arquivo bootstrap/Providers.php e retirado do config/app.php. Para packages que criavam arquivos nessa pasta agora é precisa atualizar o método para o ServiceProvider::addProviderToBootstrapFile().


Essas são as mudanças que achei interresante comentar, pra saber de todas é só ler o release notes e o upgrade guide na documentação do Laravel.

Top comments (1)

Collapse
 
sourovpal profile image
Sourov Pal

Hi,
This is Sourov Pal. I am a freelance web developer and Software Developer. I can do one of project for free. If you like my work you will pay me otherwise you don't need to pay. No upfront needed, no contract needed. If you want to outsource your work to me you may knock me.

My what's app no is: +8801919852044
Github Profile: github.com/sourovpal
Thanks