Repolode
nikic

nikic/PHP-Parser

用 PHP 编写的 PHP 解析器,可将源码转换为抽象语法树,用于静态分析与代码改写。

Star
17,467
Fork
1,145
未关闭 Issue
75
最近提交
前天

这是什么?

PHP-Parser 可将 PHP 7 和 PHP 8 代码解析为抽象语法树(AST),每个节点都带有位置信息。对于语法错误的代码,它也能生成部分语法树,便于处理仍在编辑中的代码。

除解析外,该库还提供用于遍历和修改语法树的节点遍历器与访问者机制,可将 AST 还原为 PHP 代码的 pretty printer(对部分修改的语法树可保留原有格式),命名空间名称解析,以及常量表达式求值。Builder 工具便于构造 AST 节点用于代码生成,语法树也可以序列化为 JSON 再还原。

项目通过 Composer 安装,5.x 版本需要 PHP 7.4 及以上。它常作为 PHP 生态中代码分析、重构与代码生成工具的基础库使用。

核心功能

  • 01将 PHP 7 和 PHP 8 代码解析为带准确位置信息的 AST。
  • 02对语法错误的代码生成部分语法树。
  • 03将 AST 转回 PHP 代码,未修改部分保留原有格式。
  • 04提供访问者和遍历器,用于读取与修改语法树。
  • 05支持命名空间名称解析和常量表达式求值。
  • 06支持将 AST 序列化为 JSON 并还原。

适用场景

  • 为 PHP 项目开发静态分析或代码检查工具。
  • 编写自动重构脚本,批量改写 PHP 源文件。
  • 借助 AST Builder 以编程方式生成 PHP 代码。
  • 分析 PHP 代码中的安全隐患或编码规范问题。

快速上手

  1. 1

    使用 Composer 安装该库

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

    使用 README 中的示例代码将 PHP 代码解析为 AST 并输出

使用前须知

  • 运行 5.x 版本需要 PHP 7.4 或更高版本;4.x 版本需要 PHP 7.0 或更高版本。

标签

常见问题

PHP-Parser 是什么?
用 PHP 编写的 PHP 解析器,可将源码转换为抽象语法树,用于静态分析与代码改写。 PHP-Parser 可将 PHP 7 和 PHP 8 代码解析为抽象语法树(AST),每个节点都带有位置信息。对于语法错误的代码,它也能生成部分语法树,便于处理仍在编辑中的代码。
PHP-Parser 可以免费使用吗?用的什么许可证?
PHP-Parser 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
PHP-Parser 还在维护吗?
活跃维护中。PHP-Parser 最近一次提交是在 2026年11月5日。
PHP-Parser 适合用来做什么?
为 PHP 项目开发静态分析或代码检查工具。 编写自动重构脚本,批量改写 PHP 源文件。 借助 AST Builder 以编程方式生成 PHP 代码。 分析 PHP 代码中的安全隐患或编码规范问题。
PHP-Parser 怎么安装和运行?
使用 Composer 安装该库: php composer.phar require nikic/php-parser 使用 README 中的示例代码将 PHP 代码解析为 AST 并输出
在哪里获取 PHP-Parser?
源代码和安装说明在 GitHub 上:https://github.com/nikic/PHP-Parser

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目