/** * @param Class_ $node * @param PHPNamespace $target */ public function handleClass(Class_ $node, PHPNamespace $target) { $name = $node->name; $modifiers = 0; $modifiers |= $node->isAbstract() ? PHPClass::IS_ABSTRACT : 0; $modifiers |= $node->isFinal() ? PHPClass::IS_FINAL : 0; $class = $this->codeFactory->buildClass($name, $modifiers); $target->addClass($class); $this->parse($node->stmts, $class); }
public function visitClass(Class_ $node) { $struct = $this->getStruct(); if ($node->extends !== null) { $struct->setParentClassName(implode('\\', $node->extends->parts)); } foreach ($node->implements as $name) { $struct->addInterface(implode('\\', $name->parts)); } $struct->setAbstract($node->isAbstract()); $struct->setFinal($node->isFinal()); }
/** * @param Node\Stmt\Class_ $node */ private function collectMetaOfClass(Node\Stmt\Class_ $node) { $this->getAdtMeta()->setClass(); if ($node->isAbstract()) { $this->getAdtMeta()->setAbstract(); } if ($node->isFinal()) { $this->getAdtMeta()->setFinal(); } foreach ($node->implements as $name) { if ($name = $this->filter($name)) { $this->getAdtMeta()->addImplementedNamespace($name); } } $this->collectExtends($node->extends); }