Lançamento do PHPStan 1.0, analisador estático para código em PHP.

Após seis anos de desenvolvimento, a primeira versão estável do analisador estático PHPStan 1.0 foi lançada, permitindo encontrar erros no código em PHP sem executá-lo ou usar testes unitários. O código do projeto está escrito em PHP e é distribuído sob a licença MIT.

O analisador fornece 10 níveis de verificação, onde cada nível subsequente amplia as capacidades do anterior e fornece verificações mais rigorosas:

  • Verificações básicas, definição de classes, funções e métodos desconhecidos ($this), variáveis indefinidas, bem como a passagem de um número incorreto de argumentos.
  • Detecção de variáveis potencialmente indefinidas, métodos mágicos desconhecidos e propriedades de classes com __call e __get.
  • Detecção de métodos desconhecidos em todas as expressões, sem se limitar a chamadas através de $this. Verificação de PHPDocs.
  • Verificação de tipos de retorno e atribuição de tipos a propriedades.
  • Detecção básica de código 'morto' (nunca chamado). Identificação de chamadas instanceof que sempre retornam false, blocos 'else' que nunca são acionados e código após return.
  • Verificação de tipos de argumentos passados para métodos e funções.
  • Aviso sobre a ausência de anotações com informações de tipos.
  • Aviso sobre tipos union inválidos, definindo coleções de dois ou mais tipos.
  • Aviso sobre chamadas de métodos e acesso a propriedades com tipos 'nullable'.
  • Verificação do uso do tipo 'mixed'.

    Exemplos de problemas básicos detectados:

    • Existência de classes usadas em instanceof, catch, typehints e outras construções da linguagem.
    • Existência e acessibilidade de métodos e funções chamáveis, bem como o número de argumentos passados.
    • Verificação de que o método retorna dados do mesmo tipo que o definido na expressão return.
    • Existência e visibilidade de propriedades acessadas, bem como verificação de tipos de dados declarados e reais usados nas propriedades.
    • Corretude do número de parâmetros passados nas chamadas sprintf/printf no bloco de formatação de strings.
    • Existência de variáveis considerando blocos formados por operadores de controle e loops.
    • Conversões de tipo inúteis (por exemplo, '(string) 'foo'') e checagens rigorosas ('===' e '!==') de dados com tipos e operandos diferentes, que sempre retornam false.

    Principais novidades do PHPStan 1.0:

    • Implementado o nível de verificação "9", que realiza verificações sobre o uso do tipo "mixed", destinado a organizar a aceitação de parâmetros de função com diferentes tipos. O nono nível identifica práticas inseguras de uso de "mixed", como a transferência de valores do tipo "mixed" para outro tipo, a chamada de métodos com tipo "mixed" e o acesso a suas propriedades, já que elas podem não existir.
    • Gerenciamento da verificação de identidade dos valores retornados para chamadas de funções idênticas usando as anotações @phpstan-pure e @phpstan-impure.
    • Análise de tipos em estruturas try-catch-finally usando anotações @throws.
    • Identificação de certas propriedades, métodos e constantes internas (private) que não são utilizados.
    • Transferência de chamadas de callback incompatíveis em funções de manipulação de arrays, como array_map e usort.
    • Inspeção de tipos para anotações typehint ausentes.
    • Compatibilidade das descrições de tipos com PHPDocs, permitindo o uso de tipos das mensagens de erro nas PHPDocs.

    Fonte: opennet.ru

  • Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster