{"repo":"nikic/PHP-Parser","free":true,"listed":false,"github":"https://github.com/nikic/PHP-Parser","clone":"git clone https://github.com/nikic/PHP-Parser.git","description":"A PHP parser written in PHP","language":"PHP","stars":17452,"topics":["php","parser","ast","static-analysis"],"license":"BSD-3-Clause","category":"dev-tools","readme_excerpt":"PHP Parser ========== This is a PHP parser written in PHP. Its purpose is to simplify static code analysis and manipulation. [ Documentation for version 5.x ][doc master] (current; for running on PHP = 7.4; for parsing PHP 7.0 to PHP 8.4, with limited support for parsing PHP 5.x). [Documentation for version 4.x][doc 4 x] (supported; for running on PHP = 7.0; for parsing PHP 5.2 to PHP 8.3). Features -------- The main features provided by this library are: Parsing PHP 7, and PHP 8 code into an abstract syntax tree (AST). Invalid code can be parsed into a partial AST. The AST contains accurate location information. Dumping the AST in human-readable form. Converting an AST back to PHP code. Formatting can be preserved for partially changed ASTs. Infrastructure to traverse and modify ASTs. Resolution of namespaced names. Evaluation of constant expressions. Builders to simplify AST construction for code generation. Converting an AST into JSON and back. Quick Start ----------- Install the library using composer: php composer.phar require nikic/php-parser Parse some PHP code into an AST and dump the result in human-readable form: This dumps an AST looking something like this: Let's traverse the AST and perform some kind of modification. For example, drop all function bodies: This gives us an AST where the Function ::$stmts are empty: Finally, we can convert the new AST back to PHP code: This gives us our original code, minus the var dump() call inside the function: For a more compre","default_branch":null,"files":null,"tree":[],"storefront":"/r/nikic","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/nikic/PHP-Parser/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}