当你学习为PHPStan或Rector编写自定义规则时,你也必须学习更多关于PHP编程语言的知识。
(资料图)
更准确地说,是关于解释器解析PHP代码的方式。解析PHP代码的结果是一棵代表代码结构的节点树,例如,你会有一个类的定义节点,一个方法的定义节点,以及这些方法中的声明节点,等等。
每个节点都可以被检查出错误(用PHPStan),或者以某种方式自动重构(用Rector)。【推荐学习:PHP视频教程】
这棵节点树被称为抽象语法树,一个成功的PHPStan或Rector规则首先要从树上选择正确的节点,并将你的规则 "订阅 "给这些节点。一个常见的方法是在你的新规则中开始var_dump
-ing或echo
-ing节点,但我发现这是很繁琐的。
这就是为什么我创建了一个简单的命令行工具,让你检查任何给定的PHP文件的节点。
这个工具叫做AST Inspector,可以在GitHub上找到。
用Composer安装它。
composer require --dev matthiasnoback/php-ast-inspector
登录后复制
然后运行。
vendor/bin/ast-inspect inspect [file.php]
登录后复制
你会看到类似于这个输出的东西。
你可以通过进入下一个或上一个节点在树中导航,或者跳到所选节点的子节点中。导航可以方便地使用a,s,d,w
键。
目前该项目使用PHP-Parser库进行解析。由于PHPStan在AST中增加了额外的虚拟节点,在这个工具中显示它们也会很有用,但这需要一些额外的工作。另一个有趣的补充是显示PHPStan为被检查代码中的变量推导的类型。这也需要一些额外的工作...
现在,请试一试这个程序。
以上就是AST Inspector是啥?PHP AST步骤调试器怎么用?的详细内容,更多请关注php中文网其它相关文章!