Pregunta

¿Hay una herramienta de análisis estático para archivos de código fuente de PHP? El binario en sí mismo puede comprobar si hay errores de sintaxis, pero estoy buscando algo que hace algo más, como:

  • asignaciones de variables no utilizadas
  • matrices que están asignados a sin ser inicializado primero
  • y, posiblemente, de estilo advertencias código
  • ...
¿Fue útil?

Solución

Ejecutar PHP en modo de pelusa de la línea de comandos para validar la sintaxis sin ejecución:

php -l FILENAME

analizadores estáticos de nivel superior incluyen:

analizadores de nivel inferior son:

analizadores de tiempo de ejecución, que son más útiles para algunas cosas debido a PHPS naturaleza dinámica, incluyen:

Las bibliotecas de documentación phpdoc y doxygen realizar una especie de análisis de código. Doxygen, por ejemplo, se puede configurar para hacer buenos gráficos de herencia con graphviz .

Otra opción es xhprof , que es similar a Xdebug, pero más ligero, lo que es adecuado para servidores de producción. La herramienta incluye una interfaz basada en PHP.

Otros consejos

línea PHP pelusa

PHPLint

las variables no inicializado comprobar . Enlace 1 y 2 parecen ya de hacer esto muy bien, sin embargo.

No puedo decir que he utilizado ninguno de estos intensamente, sin embargo:)

Para completar -. También puedes ver phpCallGraph

PHP detector Mess es impresionante y rápido.

He intentado usar -l $ php y par de otras herramientas. Sin embargo el mejor en mi experiencia (tu caso es distinto, por supuesto) es de pfff conjunto de herramientas . Me enteré de pfff en Quora ( http://www.quora.com / es-no-un-buen-PHP-pelusa-análisis-herramienta estática )

Se puede compilar e instalarlo. No hay paquetes agradables (en mi menta Debian, tuve que instalar libpcre3-dev, ocaml, libcairo-dev, libgtk-3-dev y dependencias primeros libgimp2.0-dev) pero debe valer una intsall.

Los resultados se presentan 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.

Los controles NetBeans IDE para errores de sintaxis, variables unusued y tal. No es automático, pero funciona bien para los proyectos pequeños o medianos.

Hay una nueva herramienta llamada nWire para PHP . Es un plugin de código de exploración para Eclipse PDT y Zend Studio 7.x Permite el análisis de código en tiempo real para PHP y proporciona las siguientes herramientas:

  • visualización de código - representación gráfica interactiva de los componentes y las asociaciones
  • .
  • Código de navegación -. Singular vista de navegación muestra todas las asociaciones y trabaja con usted mientras usted escribe o lee el código
  • Búsqueda rápida -. Búsqueda a medida que escribe para los métodos, campos, archivo, etc.

PHP PMD (detector lío proyecto) y PHP CPD (detector de goma de la copia) como la primera parte de PHPUnit

Hay RIPS - Un analizador de código fuente estático para las vulnerabilidades de scripts PHP . Fuentes de RIPS disponibles en SourceForge .

Desde el sitio RIPS:

  

RIPS es una herramienta escrita en PHP para encontrar vulnerabilidades en PHP   las aplicaciones que utilizan análisis de código estático. Por tokenizar y analizar todos   fuente de los archivos de código RIPS es capaz de transformar el código fuente PHP en una   modelo de programa para detectar y sumideros sensibles (potencialmente vulnerables   funciones) que pueden ser contaminados por userinput (influenciados por una maliciosa   usuario) durante el flujo del programa. Además de la salida del estructurada encontrado   vulnerabilidades RIPS también ofrece un marco de auditoría de código integrado   para su posterior análisis manual.

No hay absolutamente nueva herramienta para el análisis de código estático llamado PHP Analizador .

Entre los muchos tipos de análisis estático sino que también proporciona la funcionalidad básica de auto-fijación, ver documentación .

ACTUALIZACIÓN: PHP-analizador está obsoleto proyecto, pero todavía se puede acceder a él en la rama legado

Es posible que desee para tratar de compilar con hiphop de Facebook.

Se hace un análisis estático en todo el proyecto, y puede ser lo que estás buscando.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top