PHPCfg\Traverser::traverse PHP Method

traverse() public method

public traverse ( Script $script )
$script Script
    public function traverse(Script $script)
    {
        $this->event('enterScript', [$script]);
        $this->traverseFunc($script->main);
        foreach ($script->functions as $func) {
            $this->traverseFunc($func);
        }
        $this->event('leaveScript', [$script]);
    }

Usage Example

Example #1
0
 private function load()
 {
     $traverser = new Traverser();
     $declarations = new Visitor\DeclarationFinder();
     $calls = new Visitor\CallFinder();
     $variables = new Visitor\VariableFinder();
     $traverser->addVisitor($declarations);
     $traverser->addVisitor($calls);
     $traverser->addVisitor($variables);
     for ($i = 0; $i < count($this->blocks); $i++) {
         $this->blocks[$i] = $traverser->traverse($this->blocks[$i]);
     }
     $this->variables = $variables->getVariables();
     $this->constants = $declarations->getConstants();
     $this->traits = $declarations->getTraits();
     $this->classes = $declarations->getClasses();
     $this->interfaces = $declarations->getInterfaces();
     $this->methods = $declarations->getMethods();
     $this->functions = $declarations->getFunctions();
     $this->functionLookup = $this->buildFunctionLookup($declarations->getFunctions());
     $this->callFinder = $calls;
     $this->methodCalls = $this->findMethodCalls();
     $this->newCalls = $this->findNewCalls();
     $this->computeTypeMatrix();
 }
All Usage Examples Of PHPCfg\Traverser::traverse