Larastan foi criado por Can Vural e Nuno Maduro, tem arte desenhada por @Caneco, é mantido por Can Vural e Viktor Szépe, e é uma extensão PHPStan para Laravel. Larastan se concentra em encontrar erros em seu código . Ele detecta classes inteiras de bugs antes mesmo de você escrever testes para o código.
Embora, por definição, a "análise estática" não carregue nenhum código do seu aplicativo. O Larastan inicializa o contêiner da sua aplicação, para que ele possa resolver tipos que só são possíveis de serem computados em tempo de execução. É por isso que usamos o termo “análise de código” em vez de “análise estática”.
Versão Laravel | Versão Larastan |
---|---|
<9 | 1.x |
> 9,0 && <11,15 | 2.x |
11h15+ | 3,0+ |
Requer:
1 : Primeiro, você pode usar o Composer para instalar o Larastan como uma dependência de desenvolvimento em seu projeto Laravel:
composer require --dev " larastan/larastan:^3.0 "
Usando o Larastan para analisar pacotes Laravel? Pode ser necessário instalar
orchestra/testbench
.
2 : Em seguida, crie um arquivo phpstan.neon
ou phpstan.neon.dist
na raiz do seu aplicativo. Pode ser assim:
includes:
- vendor/larastan/larastan/extension.neon
- vendor/nesbot/carbon/extension.neon
parameters:
paths:
- app/
# Level 10 is the highest level
level: 5
# ignoreErrors:
# - '#PHPDoc tag @var#'
#
# excludePaths:
# - ./*/*/FileToBeExcluded.php
Para todas as opções disponíveis, dê uma olhada na documentação do PHPStan: https://phpstan.org/config-reference
3 : Finalmente, você pode começar a analisar seu código usando o comando do console phpstan:
./vendor/bin/phpstan analyse
Se você estiver recebendo o erro Allowed memory size exhausted
, então você pode usar a opção --memory-limit
para corrigir o problema:
./vendor/bin/phpstan analyse --memory-limit=2G
Ignorar um erro específico pode ser feito com um comentário php ou no arquivo de configuração:
// @phpstan-ignore-next-line
$ test -> badMethod ();
$ test -> badMethod (); // @phpstan-ignore-line
Ao ignorar erros no arquivo de configuração do PHPStan, eles são ignorados escrevendo uma regex baseada em mensagens de erro:
parameters :
ignoreErrors :
- ' #Call to an undefined method .*badMethod()# '
Em bases de código mais antigas, pode ser difícil gastar tempo corrigindo todo o código para passar um nível PHPStan alto.
Para contornar isso, um arquivo de linha de base pode ser gerado. O arquivo de linha de base criará um arquivo de configuração com todos os erros atuais, para que o novo código possa ser escrito seguindo um padrão mais elevado do que o código antigo. (Documentos PHPstan)
./vendor/bin/phpstan analyse --generate-baseline
Uma lista de regras configuráveis específicas do Laravel pode ser encontrada aqui.
Uma lista de recursos do Larastan pode ser encontrada aqui.
Uma lista de tipos de PHPDoc específicos do Larastan pode ser encontrada aqui.
Uma lista de parâmetros de configuração personalizados que você pode usar em seu arquivo de configuração PHPStan pode ser encontrada aqui.
Algumas partes do Laravel são atualmente muito mágicas para o Larastan/PHPStan entender. Listamos erros comuns a serem ignorados, adicione-os conforme necessário
Obrigado por considerar contribuir para Larastan. Todas as diretrizes de contribuição são mencionadas aqui.
Larastan é um software de código aberto licenciado sob a licença do MIT.