vscode texter tester online linter comprobar codigo code php lint

texter - ¿Hay un analizador de código estático[como Lint] para archivos PHP?



php texter (13)

¿Hay un analizador de código estático para archivos PHP? El binario en sí mismo puede buscar errores de sintaxis, pero estoy buscando algo que haga más, como asignaciones de variables no utilizadas, matrices que se asignan sin inicializar primero y posiblemente advertencias de estilo de código. Se preferirían los programas de código abierto, pero podríamos convencer a la compañía de que pague algo si es altamente recomendable.


Además, PHP Compiler tal vez vale la pena intentarlo. Su función principal es producir binarios PHP, pero tiene algunas capacidades de análisis.


Ejecute php en modo de pelusa desde la línea de comandos para validar la sintaxis sin ejecución:

php -l FILENAME

Los analizadores estáticos de nivel superior incluyen:

Los analizadores de nivel inferior incluyen:

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

Las bibliotecas de documentación phpdoc y doxygen realizan un tipo de análisis de código. Doxygen, por ejemplo, puede configurarse para generar buenos gráficos de herencia con graphviz .

Otra opción es xhprof , que es similar a xdebug, pero más liviana, lo que la hace adecuada para servidores de producción. La herramienta incluye una interfaz basada en PHP.


El IDE de NetBeans verifica errores de sintaxis, variables no utilizadas y demás. No es automatizado, pero funciona bien para proyectos pequeños o medianos.



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

Desde el sitio de RIPS:

RIPS es una herramienta escrita en PHP para encontrar vulnerabilidades en aplicaciones PHP que utilizan el análisis de código estático. Al tokenizar y analizar todos los archivos de código fuente, RIPS puede transformar el código fuente de PHP en un modelo de programa y detectar sumideros sensibles (funciones potencialmente vulnerables) que pueden ser contaminados por la entrada de usuarios (influenciada por un usuario malicioso) durante el flujo del programa. Además del resultado estructurado de las vulnerabilidades encontradas, RIPS también ofrece un marco de auditoría de código integrado para un análisis manual adicional.


Hay una herramienta absolutamente nueva para el análisis de código estático llamada PHP Analyzer .

Entre los muchos tipos de análisis estático, también proporciona una funcionalidad básica de reparación automática, consulte la documentation .

ACTUALIZACIÓN: PHP-Analyzer ahora es un proyecto obsoleto, pero aún puede acceder a él en una sucursal heredada


Hay una nueva herramienta llamada nWire para PHP . Es un complemento de exploración de código 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 componentes y asociaciones.
  • Navegación de código: la vista de navegación única muestra todas las asociaciones y trabaja contigo mientras escribes o lees código.
  • Búsqueda rápida: busque a medida que escribe métodos, campos, archivos, etc.

He intentado usar $ php -l y unir otras herramientas. Sin embargo, el mejor en mi experiencia (YMMV, por supuesto) es el conjunto de herramientas pfff . Escuché sobre pfff en Quora ( http://www.quora.com/Is-there-a-good-PHP-lint-static-analysis-tool )

Puedes compilarlo e instalarlo. No hay paquetes agradables (en mi menta Debian, tuve que instalar primero las dependencias libpcre3-dev, ocaml, libcairo-dev, libgtk-3-dev y libgimp2.0-dev), pero debería valer la pena una visita.

Los resultados son 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.


PHP PMD (detector de desorden de proyecto) y PHP CPD (detector de pegado de copia) como la parte anterior de PHPUnit



Vea CloneDR de Semantic Designs , una herramienta de "detección de clones" que encuentra el código copiar / pegar / editado. Encontrará fragmentos de código exacto y casi inexistente, a pesar de los espacios en blanco, los comentarios e incluso el cambio de nombre de las variables. Un informe de detección de muestra para PHP se puede encontrar en el sitio web. (Soy el autor).