/** * {@inheritdoc} */ public function enterNode(Node $node) { if ($node instanceof Node\Stmt\Class_) { $fullyQualifiedName = $node->namespacedName->toString(); $this->currentClass = new PHPClass($fullyQualifiedName, [], $this->getSource($node)); } elseif ($node instanceof Node\Stmt\ClassMethod) { $this->currentClass->addMethod(new PHPMethod($node->name, $node->isStatic(), $this->getSource($node))); } elseif ($node instanceof Node\Stmt\Function_) { $fullyQualifiedName = $node->namespacedName->toString(); $this->result->addFunction(new PHPFunction($fullyQualifiedName, $this->getSource($node))); } }
/** * @param PHPClass $class */ public function addClass(PHPClass $class) { $this->classes[$class->getFullName()] = $class; }
/** * @param PHPClass $class * @param string $methodName * @param string $expectedSource */ private function assertClassMethod(PHPClass $class, $methodName, $expectedSource) { $this->assertTrue($class->hasMethod($methodName)); $this->assertInstanceOf(PHPMethod::class, $class->getMethod($methodName)); $this->assertSourceCode($expectedSource, $class->getMethod($methodName)->getSource()); }