/** * {@inheritdoc} */ public function enterNode(Node $node) { if ($node instanceof Node\Stmt\ClassLike) { if ($node instanceof Node\Stmt\Class_ && $node->isAnonymous()) { return; } $this->parentName = $node->namespacedName->toString(); } if (!$this->hasDeprecatedDocComment($node)) { return; } if ($node instanceof Node\Stmt\Function_) { $this->phpFileInfo->addFunctionDeprecation(new FunctionDeprecation($node->name, $this->getDeprecatedDocComment($node))); return; } if ($node instanceof Node\Stmt\Class_) { $this->phpFileInfo->addClassDeprecation(new ClassDeprecation($this->parentName, $this->getDeprecatedDocComment($node))); return; } if ($node instanceof Node\Stmt\Interface_) { $this->phpFileInfo->addInterfaceDeprecation(new InterfaceDeprecation($this->parentName, $this->getDeprecatedDocComment($node))); return; } if ($node instanceof Node\Stmt\ClassMethod) { $this->phpFileInfo->addMethodDeprecation(new MethodDeprecation($this->parentName, $node->name, $this->getDeprecatedDocComment($node))); return; } }
/** * {@inheritdoc} */ public function enterNode(Node $node) { if ($node instanceof Node\Stmt\Class_ && $node->extends instanceof Node\Name) { if ($node->isAnonymous()) { return; } $superTypeUsage = new SuperTypeUsage($node->extends->toString(), $node->namespacedName->toString(), $node->getLine()); $this->phpFileInfo->addSuperTypeUsage($superTypeUsage); } }
public function leaveNode(Node $node) { if ($node instanceof Node\Stmt\Class_ || $node instanceof Node\Stmt\Interface_ || $node instanceof Node\Stmt\Trait_) { if ($node instanceof Node\Stmt\Class_ && $node->isAnonymous()) { return; } $this->table->leaveScope(); } if ($node instanceof Node\Stmt\ClassMethod || $node instanceof Node\Stmt\Function_) { $this->table->leaveScope(); } }
/** * {@inheritdoc} */ public function enterNode(Node $node) { if ($node instanceof Node\Stmt\Class_) { if ($node->isAnonymous()) { return; } $phpFileInfo = $this->phpFileInfo; array_map(function (Node\Name $interface) use($node, $phpFileInfo) { $interfaceUsage = new InterfaceUsage($interface->toString(), $node->namespacedName->toString(), $node->getLine()); $phpFileInfo->addInterfaceUsage($interfaceUsage); }, $node->implements); } }