loganhenson / php-parser
用PHP编写的PHP解析器
4.0.3
2017-04-21 20:41 UTC
Requires
- php: >=5.6
- ext-tokenizer: *
Requires (Dev)
- phpunit/phpunit: ~5.0
- dev-master
- 4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- 3.x-dev
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v3.0.0beta2
- v3.0.0beta1
- v3.0.0alpha1
- 2.x-dev
- v2.1.1
- v2.1.0
- v2.0.1
- v2.0.0
- v2.0.0beta1
- v2.0.0alpha1
- 1.x-dev
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.0
- v1.0.2
- v1.0.1
- v1.0.0
- v1.0.0beta2
- v1.0.0beta1
- 0.9.x-dev
- v0.9.5
- v0.9.4
- v0.9.3
- v0.9.2
- v0.9.1
- v0.9.0
- dev-formatPreservingPrint
- dev-identifiersAsNodes
- dev-nameString
- dev-attributes
This package is auto-updated.
Last update: 2024-09-17 06:21:16 UTC
README
这是一个PHP 5.2到PHP 7.1的解析器,用PHP编写。它的目的是简化静态代码分析和操作。
3.x版本文档(稳定版;适用于PHP >= 5.5;用于解析PHP 5.2到PHP 7.1)。
2.x版本文档(不受支持;适用于PHP >= 5.4;用于解析PHP 5.2到PHP 7.0)。
概要
该解析器将PHP源代码转换为抽象语法树。例如,如果您将以下代码传递给解析器
<?php echo 'Hi', 'World'; hello\world('foo', 'bar' . 'baz');
您将获得一个看起来大致如下所示的语法树
array( 0: Stmt_Echo( exprs: array( 0: Scalar_String( value: Hi ) 1: Scalar_String( value: World ) ) ) 1: Expr_FuncCall( name: Name( parts: array( 0: hello 1: world ) ) args: array( 0: Arg( value: Scalar_String( value: foo ) byRef: false ) 1: Arg( value: Expr_Concat( left: Scalar_String( value: bar ) right: Scalar_String( value: baz ) ) byRef: false ) ) ) )
然后您可以操作这个语法树,例如进行代码的静态分析(例如查找编程错误或安全问题)。
此外,您可以将语法树转换回PHP代码。这允许您进行代码预处理(例如自动将代码移植到旧版本的PHP)。
安装
首选安装方法是composer
php composer.phar require nikic/php-parser
文档
组件文档