Exemple #1
0
 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);
     }
 }
Exemple #4
0
 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());
 }