mck89/peast
Peast is a PHP 5.4+ library that parses JavaScript per the ECMAScript spec and builds an abstract syntax tree following the ESTree standard. It also supports tokenization, tree traversal, selector queries, and rendering.
Peast (PHP ECMAScript Abstract Syntax Tree) is a PHP 5.4+ library that parses JavaScript code, according to ECMAScript specification, and generates an abstract syntax tree following the ESTree standard.
Include the following requirement to your composer.json:
{
"require": {
"mck89/peast": "dev-master"
}
}
Run composer install to install the package.
Then in your script include the autoloader and you can start using Peast:
require_once "vendor/autoload.php";
$source = "var a = 1"; // Your JavaScript code
$ast = Peast\Peast::latest($source, $options)->parse(); // Parse it!
When Xdebug is enabled and Peast is used to scan code that contains deeply nested functions, this fatal error can appear:
PHP Fatal error: Maximum function nesting level of '512' reached, aborting!
or
PHP Warning: Uncaught Error: Xdebug has detected a possible infinite loop, and aborted your script with a stack depth of '256' frames
To prevent this you can set xdebug.max_nesting_level to a higher value, such as 512.
Read the documentation for more examples and explanations:
How can I help you explore Laravel packages today?