protected function resolveOtherName(Name $name, $type) { if (!$name instanceof FullyQualified) { $name->setAttribute('resolvedFqcn', parent::resolveOtherName($name, $type)); } return $name; }
public function leaveNode(Node $node) { if ($node->hasAttribute(NameResolver::TAG_NAMES_ATTRIBUTE)) { $tags = $node->getAttribute(NameResolver::TAG_NAMES_ATTRIBUTE); foreach ($tags as $tagName) { $name = new Node\Name($tagName); $name->setAttribute('isComment', true); $this->collect($name, $node); } } }
/** * @param Node\Name $target * @param Node $source */ private function exchange(Node\Name $target, Node $source) { $attributes = $source->getAttributes(); foreach ($attributes as $attr => $value) { $target->setAttribute($attr, $value); } }
protected function resolveOtherName(Name $name, $type) { // fully qualified names are already resolved if ($name->isFullyQualified()) { return $name; } // resolve aliases for qualified names $aliasName = strtolower($name->getFirst()); if ($name->isQualified() && isset($this->aliases[Stmt\Use_::TYPE_NORMAL][$aliasName])) { $alias = $this->aliases[Stmt\Use_::TYPE_NORMAL][$aliasName]; return FullyQualified::concat($alias, $name->slice(1), $name->getAttributes()); } if ($name->isUnqualified()) { if ($type === Stmt\Use_::TYPE_CONSTANT) { // constant aliases are case-sensitive, function aliases case-insensitive $aliasName = $name->getFirst(); } if (isset($this->aliases[$type][$aliasName])) { // resolve unqualified aliases return new FullyQualified($this->aliases[$type][$aliasName], $name->getAttributes()); } if (null === $this->namespace) { // outside of a namespace unaliased unqualified is same as fully qualified return new FullyQualified($name, $name->getAttributes()); } // unqualified names inside a namespace cannot be resolved at compile-time // add the namespaced version of the name as an attribute $name->setAttribute('namespacedName', FullyQualified::concat($this->namespace, $name, $name->getAttributes())); return $name; } // if no alias exists prepend current namespace return FullyQualified::concat($this->namespace, $name, $name->getAttributes()); }