mck89/peast

Peast 是一个 PHP 库,用于生成 JavaScript 代码的 AST

v1.16.3 2024-07-23 14:00 UTC

README

Latest Stable Version Total Downloads License Build Status

Peast (PHP ECMAScript 抽象语法树) 是一个 PHP 5.4+ 库,它根据 ECMAScript 规范解析 JavaScript 代码,并生成遵循 ESTree 标准的抽象语法树。

安装

将以下需求添加到您的 composer.json 文件中

{
	"require": {
		"mck89/peast": "dev-master"
	}
}

运行 composer install 以安装此包。

然后在您的脚本中包含自动加载器,您就可以开始使用 Peast 了

require_once "vendor/autoload.php";

$source = "var a = 1"; // Your JavaScript code
$ast = Peast\Peast::latest($source, $options)->parse(); // Parse it!

已知问题

当启用 Xdebug 并且使用 Peast 扫描包含深层嵌套函数的代码时,可能会出现以下致命错误

PHP Fatal error:  Maximum function nesting level of '512' reached, aborting!

或者

PHP Warning:  Uncaught Error: Xdebug has detected a possible infinite loop, and aborted your script with a stack depth of '256' frames

为防止这种情况,可以将 xdebug.max_nesting_level 设置为一个更高的值,例如 512。

文档

阅读文档以获取更多示例和说明

  1. AST 生成和标记化
  2. 树遍历
  3. 通过选择器查询
  4. 渲染

变更日志