DEV Community

Cover image for Laravel 9 - Release Update
Marcio Policarpo
Marcio Policarpo

Posted on

Laravel 9 - Release Update

Em 03 de Agosto foi liberado o release 9.23 do framework Laravel 9.

Neste artigo trago um resumo desta atualização.

Boa leitura.


Novidades

Artisan Docs

É através do Artisan que realizamos grande parte do trabalho de desenvolvimento de aplicações Laravel.

Conseguimos criar classes, executar migrações e testes.

Entretanto, sempre que precisávamos recorrer à documentação era necessário acessar o site oficial buscando pela informação desejada.

A partir deste release foi introduzido um novo comando:

php artisan docs
Enter fullscreen mode Exit fullscreen mode

Assim que executado ele trará uma lista com toda a documentação atualmente disponível no site oficial.

Ao digitar um item da lista será aberta uma nova janela do navegador padrão já com a respectiva documentação.

Para acessar diretamente a página da documentação sem visualizar alista de opções bastar digitar o comando php artisan docs precedido da documentação desejada, como por exemplo Redis.

Também é possível ir diretamente ao tópico desejado.

Por exemplo: php artisan docs queues redis

Abaixo o novo comando sendo executado.


DeleteQuietly

Em uma aplicação Laravel o ciclo de vida de um model dispara diversos eventos, possibilitando ao desenvolvedor criar métodos específicos para capturar cada momento.

Para evitar este comportamento em classes que herdam de Illuminate\Database\Eloquent\Model é comum utilizar-se do método withoutEvents().

O método withoutEvents() recebe como parâmetro uma função de call back tornando silenciosas todas as instruções executadas dentro desta função.

A implementação desta abordagem é relativamente simples como podemos ver no código a seguir:

use App\Models\Product;

$product = product::withoutEvents(function () use () {
    product::findOrFail(1)->delete();

    return product::find(2);
});

Enter fullscreen mode Exit fullscreen mode

Embora já houvessem métodos para salvar e atualizar um modelo de forma silenciosa, respectivamente saveQuietly() e updateQuietly() faltava o método para deletar, que foi adicionado no release 9.23.

Abaixo um exemplo de código utilizando o novo método.

use App\Models\Product;

$product = Product::find(1);

$product->deleteQuietly();
Enter fullscreen mode Exit fullscreen mode

Bugs

Para usuários do recurso de agendamento de tarefas (Queues) disponível no Laravel esta correção veio em boa hora.

Em cenários com grande volume de tarefas agendadas para o mesmo horário utilizando banco de dados em memória Redis, havia a possibilidade do banco de dados travar.

A correção consiste em limitar a quantidade de tarefas que podem ser adicionadas à fila principal, criando uma fila secundária onde as tarefas agendadas ficam em 'stand by', sendo liberadas de acordo com a disponibilidade da fila principal.


Todos os detalhes deste release podem ser vistos aqui.

Top comments (0)