Chris@13: namespace = []; Chris@13: $this->currentScope = []; Chris@13: } Chris@13: Chris@13: /** Chris@13: * @todo should this be final? Extending classes should be sure to either use Chris@13: * leaveNode or call parent::enterNode() when overloading Chris@13: * Chris@13: * @param Node $node Chris@13: */ Chris@13: public function enterNode(Node $node) Chris@13: { Chris@13: if ($node instanceof Namespace_) { Chris@13: $this->namespace = isset($node->name) ? $node->name->parts : []; Chris@13: } Chris@13: } Chris@13: Chris@13: /** Chris@13: * Get a fully-qualified name (class, function, interface, etc). Chris@13: * Chris@13: * @param mixed $name Chris@13: * Chris@13: * @return string Chris@13: */ Chris@13: protected function getFullyQualifiedName($name) Chris@13: { Chris@13: if ($name instanceof FullyQualifiedName) { Chris@17: return \implode('\\', $name->parts); Chris@13: } elseif ($name instanceof Name) { Chris@13: $name = $name->parts; Chris@17: } elseif (!\is_array($name)) { Chris@13: $name = [$name]; Chris@13: } Chris@13: Chris@17: return \implode('\\', \array_merge($this->namespace, $name)); Chris@13: } Chris@13: }