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