>  기사  >  백엔드 개발  >  AST 검사기란 무엇입니까? PHP AST 단계 디버거를 사용하는 방법은 무엇입니까?

AST 검사기란 무엇입니까? PHP AST 단계 디버거를 사용하는 방법은 무엇입니까?

藏色散人
藏色散人앞으로
2022-11-08 16:39:392825검색

이 기사에서는 AST Inspector가 무엇인지, PHP AST 단계 디버거를 사용하는 방법을 소개합니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다~

PHPStan 또는 Rector용 사용자 정의 규칙 작성 방법을 배울 때 다음 사항도 배워야 합니다. PHP에 대한 추가 정보 프로그래밍 언어에 대한 지식.

더 정확하게는 인터프리터가 PHP 코드를 구문 분석하는 방식에 관한 것입니다. PHP 코드를 구문 분석한 결과는 코드의 구조를 나타내는 노드 트리입니다. 예를 들어 클래스에 대한 정의 노드, 메소드에 대한 정의 노드, 이러한 메소드 내에 선언 노드 등이 있습니다.

각 노드는 오류가 있는지 확인하거나(PHPStan 사용) 어떤 방식으로든 자동으로 재구성할 수 있습니다(Rector 사용). [추천 학습: PHP 비디오 튜토리얼]

이 노드 트리는 추상 구문 트리라고 합니다. 성공적인 PHPStan 또는 Rector 규칙은 먼저 트리에서 올바른 노드를 선택하고 해당 노드에 규칙을 "구독"해야 합니다. 일반적인 접근 방식은 새 규칙에서 노드를 var_dump하거나 echo하는 것입니다. 그러나 이 방법은 지루한 작업입니다. var_dump-ing或echo-ing节点,但我发现这是很繁琐的。

这就是为什么我创建了一个简单的命令行工具,让你检查任何给定的PHP文件的节点。

这个工具叫做AST Inspector,可以在GitHub上找到。

GitHub地址:https://github.com/matthiasnoback/php-ast-inspector/

用Composer安装它。

composer require --dev matthiasnoback/php-ast-inspector

然后运行。

vendor/bin/ast-inspect inspect [file.php]

你会看到类似于这个输出的东西。

Screenshot of PHP AST inspector

你可以通过进入下一个或上一个节点在树中导航,或者跳到所选节点的子节点中。导航可以方便地使用a,s,d,w

그래서 저는 특정 PHP 파일의 노드를 검사할 수 있는 간단한 명령줄 도구를 만들었습니다.

이 도구는 AST Inspector라고 하며 GitHub에서 찾을 수 있습니다.

GitHub 주소: https://github.com/matthiasnoback/php-ast-inspector/🎜
🎜Composer로 설치하세요. 🎜rrreee🎜 하고 달려요. 🎜rrreee🎜이 출력과 비슷한 내용이 표시됩니다. 🎜🎜PHP AST 검사기 스크린샷🎜🎜you 다음 또는 이전 노드로 이동하여 트리를 탐색하거나 선택한 노드의 하위 노드로 이동할 수 있습니다. a,s,d,w 키를 사용하면 탐색이 쉬워집니다. 🎜🎜현재 이 프로젝트는 구문 분석을 위해 PHP-Parser 라이브러리를 사용합니다. PHPStan은 AST에 추가 가상 노드를 추가하므로 이 도구에서 이를 표시하는 것도 유용할 수 있지만 이를 위해서는 몇 가지 추가 작업이 필요합니다. 또 다른 흥미로운 추가 사항은 검사 중인 코드의 변수에 대해 PHPStan이 추론한 유형을 표시하는 것입니다. 여기에는 추가 작업도 필요합니다...🎜🎜이제 이 앱을 사용해 보세요. 🎜

위 내용은 AST 검사기란 무엇입니까? PHP AST 단계 디버거를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.im에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제