Pergunta

Existe uma ferramenta de análise estática para arquivos de origem PHP? O binário em si pode verificar se há erros de sintaxe, mas eu estou procurando algo que faz mais, como:

  • atribuições de variáveis ??não utilizadas
  • matrizes que estão registadas em sem ser inicializado primeiro
  • e, possivelmente, avisos de estilo de código
  • ...
Foi útil?

Solução

Executar php em fiapos de modo a partir da linha de comando para sintaxe validar sem execução:

php -l FILENAME

analisadores de nível superior estáticos incluem:

analisadores de nível mais baixo incluem:

analisadores de tempo de execução, que são mais úteis para algumas coisas, devido à natureza dinâmica do PHP, incluem:

A documentação bibliotecas phpdoc e doxygen realizar uma espécie de análise de código. Doxygen, por exemplo, pode ser configurado para renderizar gráficos agradáveis ??herança com graphviz .

Outra opção é xhprof , que é semelhante ao xdebug, mas mais leve, tornando-o adequado para servidores de produção. A ferramenta inclui uma interface baseada em PHP.

Outras dicas

online PHP fiapos

PHPLint

não inicializado verificar . Link 1 e 2 já parece fazer isso muito bem, apesar de tudo.

Eu não posso dizer que tenho usado qualquer um destes intensamente, embora:)

Para completar - também verificar phpCallGraph

.

PHP Mess Detector é incrível e rápido.

Eu tentei usar $ php -l e algumas outras ferramentas. No entanto, o melhor na minha experiência (YMMV, é claro) é scheck de pfff conjunto de ferramentas . Eu ouvi sobre pfff no Quora ( http://www.quora.com / há-de-um-bom-PHP-lint-static-analysis-ferramenta )

Você pode compilar e instalá-lo. Não há pacotes agradáveis ??(no meu hortelã Debian, eu tive que instalar libpcre3-dev, ocaml, libcairo-dev, libgtk-3-dev e libgimp2.0-dev dependências primeiro), mas deve valer a pena uma intsall.

Os resultados são reportados como

rjha@mint ~ $ ~/sw/pfff/scheck ~/code/github/sc/
login-now.php:7:4: CHECK: Unused Local variable $title
go-automatic.php:14:77: CHECK: Use of undeclared variable $goUrl.

CloneDR See Designs Semântica , uma ferramenta "clone detecção" que encontra copiar / colar / código editado. Ele vai encontrar fragmentos de código falta exatas e de perto, apesar de espaços em branco, comentários e até mesmo renomeações variáveis. Um relatório de detecção da amostra para PHP pode ser encontrado no wesite. (Eu sou o autor).

As verificações NetBeans IDE para erros de sintaxe, variáveis ??unusued e tal. Não é automatizado, mas funciona bem para projetos pequenos ou médios.

Há uma nova ferramenta chamada nWire para PHP . É um plugin exploração código para Eclipse PDT e 7.x. Zend Studio Ele permite a análise de código em tempo real para PHP e fornece as seguintes ferramentas:

  • Código de visualização - representação gráfica interativa de componentes e associações
  • .
  • navegação de código -. Únicas navegação vista mostra todas as associações e trabalha com você enquanto você escrever ou ler o código
  • Pesquisa rápida -. Busca enquanto você digita para métodos, campos, arquivos, etc

PHP PMD (detector bagunça projeto) e PHP CPD (cópia detector colar) como a primeira parte do PHPUnit

Não é RIPS - analisador de código estático A fonte de vulnerabilidades em scripts PHP . Fontes de RIPS disponíveis em SourceForge .

A partir do site RIPS:

RIPS é uma ferramenta escrita em PHP para encontrar vulnerabilidades no PHP aplicações usando análise estática de código. Por tokenizing e analisar tudo fonte arquivos de código RIPS é capaz de transformar o código fonte PHP em um modelo do programa e detectar pias sensíveis (potencialmente vulneráveis funções) que podem ser contaminados por userinput (influenciado por um malicioso utilizador) durante o fluxo do programa. Além da saída estruturada de constatada vulnerabilidades RIPS também oferece um quadro de auditoria de código integrado para análise manual.

Não há absolutamente nova ferramenta para análise estática de código chamado PHP Analyzer .

Entre os muitos tipos de análise estática que também fornece funcionalidade de fixação auto básico, veja documentação .

UPDATE: PHP-Analyzer está agora obsoleto projeto, mas você ainda pode acessá-lo no ramo legado

Você pode querer tentar compilar com hiphop do Facebook.

Ele faz uma análise estática em todo o projeto, e pode ser o que você está procurando.

https://github.com/facebook/hiphop-php

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top