/** * Extracts content of method * * @param ReflectedMethod $method * @param integer $n * @param TokenCollection $tokens * @param ReflectedClass $currentClass * @return $this */ private function extractDependencies(ReflectedMethod $method, $n, TokenCollection $tokens, ReflectedClass $currentClass = null) { // // Object creation $extractor = new CallExtractor($this->searcher, $currentClass); $start = $n; $len = sizeof($tokens, COUNT_NORMAL); for ($i = $start; $i < $len; $i++) { $token = $tokens[$i]; switch ($token->getType()) { case T_PAAMAYIM_NEKUDOTAYIM: case T_NEW: $call = $extractor->extract($i, $tokens, $currentClass); if ($call !== 'class') { // anonymous class $method->pushDependency($call); $method->pushInstanciedClass($call); } break; } } // // Parameters in Method API $resolver = new TypeResolver(); foreach ($method->getArguments() as $argument) { $name = $argument->getType(); if (strlen($name) > 0 && !$resolver->isNative($name)) { $method->pushDependency($name); } } return $this; }