Repolode
nikic

nikic/PHP-Parser

Un parser de PHP escrito en PHP que convierte código fuente PHP en un árbol de sintaxis abstracta para el análisis estático y la manipulación de código.

Estrellas
17,467
Forks
1,145
Issues abiertos
75
Último commit
anteayer

¿Qué es?

PHP-Parser analiza código PHP 7 y PHP 8 y lo convierte en un árbol de sintaxis abstracta (AST), con información de ubicación asociada a cada nodo. También puede analizar código no válido y generar un árbol parcial, lo que resulta útil para las herramientas que necesitan trabajar con código que aún se está editando.

Además del análisis, la biblioteca incluye un recorrido de nodos con visitors para leer y modificar el árbol, un pretty printer que convierte un AST de nuevo en código PHP (y conserva el formato original en los árboles modificados parcialmente), resolución de nombres con espacios de nombres y evaluación de expresiones constantes. Los builders facilitan la generación de nodos AST para generar código, y el árbol se puede serializar a JSON y recuperar desde JSON.

La biblioteca se instala mediante Composer y sirve de base para herramientas de análisis de código, refactorización y generación de código en el ecosistema PHP. La versión 5.x funciona con PHP 7.4 y versiones posteriores.

Funciones clave

  • 01Analiza código PHP 7 y PHP 8 y lo convierte en un AST con información de ubicación precisa.
  • 02Recupera un AST parcial a partir de código sintácticamente no válido.
  • 03Convierte un AST de nuevo en código PHP y conserva el formato de las partes que no han cambiado.
  • 04Incluye visitors y un traverser para leer y modificar árboles.
  • 05Resuelve nombres con espacios de nombres y evalúa expresiones constantes.
  • 06Serializa AST a JSON y los recupera desde JSON.

Casos de uso

  • Crear herramientas de análisis estático o linting para bases de código PHP.
  • Escribir scripts de refactorización automatizada que reescriban archivos fuente PHP.
  • Generar código PHP mediante programación con builders de AST.
  • Analizar código PHP para detectar problemas de seguridad o incumplimientos de estándares de codificación.

Inicio rápido

  1. 1

    Instala la biblioteca con Composer

    php composer.phar require nikic/php-parser
  2. 2

    Analiza el código PHP y conviértelo en un AST para volcarlo, usando el ejemplo de código del README

Antes de usarlo

  • La versión 5.x requiere PHP 7.4 o posterior. La versión 4.x necesita PHP 7.0 o posterior.

Temas

Preguntas frecuentes

¿Qué es PHP-Parser?
Un parser de PHP escrito en PHP que convierte código fuente PHP en un árbol de sintaxis abstracta para el análisis estático y la manipulación de código. PHP-Parser analiza código PHP 7 y PHP 8 y lo convierte en un árbol de sintaxis abstracta (AST), con información de ubicación asociada a cada nodo. También puede analizar código no válido y generar un árbol parcial, lo que resulta útil para las herramientas que necesitan trabajar con código que aún se está editando.
¿PHP-Parser es gratuito? ¿Qué licencia tiene?
PHP-Parser es open source bajo la licencia BSD-3-Clause. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿PHP-Parser sigue mantenido?
Mantenimiento activo. El último commit de PHP-Parser fue el 5 nov 2026.
¿Para qué puedo usar PHP-Parser?
Crear herramientas de análisis estático o linting para bases de código PHP. Escribir scripts de refactorización automatizada que reescriban archivos fuente PHP. Generar código PHP mediante programación con builders de AST. Analizar código PHP para detectar problemas de seguridad o incumplimientos de estándares de codificación.
¿Cómo se instala PHP-Parser?
Instala la biblioteca con Composer: php composer.phar require nikic/php-parser Analiza el código PHP y conviértelo en un AST para volcarlo, usando el ejemplo de código del README
¿Dónde consigo PHP-Parser?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/nikic/PHP-Parser

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados