sekjun9878/scope-resolver

Scope Resolver for PHP-Parser

dev-master 2015-11-07 10:05 UTC

This package is not auto-updated.

Last update: 2024-04-13 16:34:27 UTC


README

This is a NodeVisitor component for nikic/PHP-Parser that resolves the scope of classes, functions, namespace and closures, and appends them to every node as an attribute.

This can be useful if you need a unique scope identifier for anything, e.g. checking the scope of a variable.

Currently, only PHP5 is supported but I'm working on PHP7 support.

Usage

Usage is really really really simple.

use sekjun9878\ScopeResolver\NodeVisitor\ScopeResolver;

$parser        = (new ParserFactory)->create(ParserFactory::PREFER_PHP5);
$traverser     = new NodeTraverser;

// Add the ScopeResolver visitor
$traverser->addVisitor(new ScopeResolver);

$stmts = $parser->parse($code);
$stmts = $traverser->traverse($stmts);

// Now every node will have a "scope" attribute attached.