DEV Community

Cover image for Laravel 11: quase pronto...
Marcio Policarpo
Marcio Policarpo

Posted on

Laravel 11: quase pronto...

A versão 11 do Laravel será disponibilizada oficialmente nas próximas semanas e trará mudanças significativas.


Versão do PHP

Para começar, a versão mínima necessária do PHP para executar as aplicações subiu da atual 8.1 para 8.2.

Uma das melhorias advindas com a nova versão do PHP é que agora, é possível marcar parâmetros de função como sensíveis.

Para uma melhor compreensão dessa melhoria, imagine um cenário onde a aplicação lança uma exceção. Em muitas linguagens de programação, o rastreamento dessas exceções serve para identificarmos erros na aplicação possibilitando sua correção.

Entretanto, esse rastreamento pode mostrar dados sensíveis, como usuário ou número de cartão de crédito por exemplo, na eventualidade de terem sido passados via parâmetro para o método que lançou a exceção.

E é justamente para ajudar a mitigar esse tipo de situação que a versão 8.2 do PHP trouxe o atributo #[\SensitiveParameter].

Quando o compilador do PHP encontrar um parâmetro com esse atributo, o valor do parâmetro será omitido do rastreamento de pilha, caso ocorra uma exceção.

O trecho de código a seguir ilustra a utilização do novo atributo e o resultado obtido:

<?php

function exemplo(
    $diretorio,
    #[\SensitiveParameter] $usuario
) {
    throw new \Exception('Error');
}

exemplo('\app\docs', 'Alfred');

/*
Fatal error: Uncaught Exception: Error in test.php:6
Stack trace:
#0 test.php(10): test('\app\docs', Object(SensitiveParameterValue))
#1 {main}
thrown in test.php on line 6
*/
Enter fullscreen mode Exit fullscreen mode

Note que, ao apresentar a exceção, o parâmetro decorado com o atributo #[\SensitiveParameter] tem o seu valor ocultado.


Arquivos de rotas no Laravel

Até a versão 10, as novas instalações traziam no mínimo 4 arquivos para configuração de rotas:

  • api.php: como o próprio nome diz, fazemos a configuração das rotas de APIs REST
  • channels.php: este configura as rotas de broadcasting dentro da aplicação
  • console.php: caso sua aplicação receba chamadas através de rotinas de console, este é o arquivo a ser configurado
  • web.php: este arquivo configura as rotas para quando a aplicação é totalmente suportada pelo Laravel, tanto no backend quando frontend.

A partir da versão 11 somente os arquivos console.php e web.php estarão presentes em novas instalações.

Os demais arquivos poderão ser adicionados utilizando o Artisan, como mostrado a seguir:

php artisan install:api
Enter fullscreen mode Exit fullscreen mode

Ao ser executado, o arquivo api.php será criado na pasta \routes.

O comando também fará a instalação do Laravel Sanctum, facilitando a implementação da autenticação de APIs REST.


DD/Dump

Um programador PHP que não conheça o comando "dd" não é programador PHP.... 😂

No desenvolvimento de aplicações o ato de debugar faz parte do dia a dia dos programadores e tem como principal objetivo entender o fluxo das rotinas.

No mundo web as coisas são um pouco diferentes e essa tarefa é ligeiramente mais complexa.

Para começar, nem todas as ferramentas (leia-se editor de código) possuem as funcionalidades necessárias para debugar aplicações PHP, e as que tem geralmente são pagas.

Já para as gratuitas é preciso adicionar plug-ins ou extensões para conseguir debugar.

E no PHP é comum avaliarmos variáveis e classes através da função dd.

Abaixo podemos ver a sintaxe da função:

dd($variavel);
Enter fullscreen mode Exit fullscreen mode

Ao ser invocada, a função retorna para a página o valor avaliado, interrompendo a aplicação em seguida.

Com o objetivo de facilitar a vida dos desenvolvedores, a versão 11 do Laravel traz a trait Dumpable, extensível a qualquer classe PHP dentro da aplicação.

O trecho de código a seguir exemplifica o uso da nova trait:

class Stringable implements JsonSerializable, ArrayAccess
{
    use Conditionable, Dumpable, Macroable, Tappable;

    str('foo')->dd();
    str('foo')->dump();
}
Enter fullscreen mode Exit fullscreen mode

E o comportamento é o mesmo da função dd, mostrando o valor e interrompendo a aplicação em seguida.


Sabemos da importância de manter o sistema atualizado, com a framework mais recente (e estável) em uso. Pensando nisso, alguns cuidados devem ser tomados:

  • 📚leia a documentação
  • 👊avalie viabilidade técnica e necessidade com o time
  • 👩👨analise se haverá impacto para o cliente

Obrigado pela leitura e até breve. 😎

Top comments (0)