Analisador estático performente para PHP, o que é extremamente fácil de usar. Ajuda você a capturar erros comuns no seu código PHP.
A maneira mais simples de instalar o Phanalist é usar o script de instalação.
curl --proto ' =https ' --tlsv1.2 -sSf https://raw.githubusercontent.com/denzyldick/phanalist/main/bin/init.sh | shEle irá baixar automaticamente o executável para sua plataforma:
$ ~ /phanalist -V
phanalist 1.0.0Existem também várias outras opções de instalação.
Para analisar suas fontes de projeto, você só precisa executar phanalist :
~ /phanalist
Na primeira execução, phanalist.yaml será criado com as configurações padrão. E será reutilizado em todas as seguintes corridas.
Existem também alguns parâmetros adicionais:
config : caminho para o arquivo de configuração, ./phanalist.yaml é um valor padrão.src : caminho para fontes do projeto, ./src é o valor padrão.output-format : formato usado para produzir os resultados. As opções possíveis são text (padrão), json e sarif .summary-only : Saída apenas quantidades de violações encontradas para cada regra.quiet : suprime toda a saída.As opções possíveis são:
enabled_rules contém a lista de regras a serem usadas. Todas as regras serão usadas se esta lista estiver vazia.disable_rules contém a lista de regras a serem ignoradas.rules .O arquivo de configuração padrão é:
enabled_rules : []
disable_rules : []
rules :
E0007 :
check_constructor : true
max_parameters : 5
E0009 :
max_complexity : 10
E0010 :
max_paths : 200
E0012 :
include_namespaces :
- " App \ Service \ "
- " App \ Controller \ "
exclude_namespaces : []As seguintes regras estão disponíveis:
| Código | Nome | Opções padrão |
|---|---|---|
| E0000 | Regra de exemplo | |
| E0001 | Posição da tag de abertura | |
| E0002 | Captura vazia | |
| E0003 | Modificadores de método | |
| E0004 | Constantes maiúsculas | |
| E0005 | Nome da classe capitalizado | |
| E0006 | Modificadores de propriedades | |
| E0007 | Parâmetros do método contam | check_constructor: true, max_parameters: 5 |
| E0008 | Retornar assinatura do tipo | |
| E0009 | Complexidade ciclomática | max_complexity: 10 |
| E0010 | Complexidade nPath | max_complexity: 200 |
| E0011 | Detectar Erro Símbolo de Supressão (@) | |
| E0012 | Compatibilidade de serviço com modelo de memória compartilhada | Incluir_namespaces: ["App Service "], exclude_namespaces: [], Reset_Interfaces: ["ResetInterface"] |
| E0013 | Método privado não sendo usado |
Adicionar uma nova regra é uma tarefa simples, e este tutorial explica como fazê -lo.
Leia uma série de capítulos em https://dev.to/denzyldick para entender os internos do projeto. É uma ótima e fácil de ler a introdução a este projeto.