protected function resolveClassName(PHPParser_Node_Name $name) { // don't resolve special class names if (in_array((string) $name, array('self', 'parent', 'static'))) { return $name; } // fully qualified names are already resolved if ($name->isFullyQualified()) { return $name; } // resolve aliases (for non-relative names) if (!$name->isRelative() && isset($this->aliases[$name->getFirst()])) { $name->setFirst($this->aliases[$name->getFirst()]); // if no alias exists prepend current namespace } elseif (null !== $this->namespace) { $name->prepend($this->namespace); } return new PHPParser_Node_Name_FullyQualified($name->parts, $name->getAttributes()); }
public function testIs() { $name = new PHPParser_Node_Name('foo'); $this->assertTrue($name->isUnqualified()); $this->assertFalse($name->isQualified()); $this->assertFalse($name->isFullyQualified()); $this->assertFalse($name->isRelative()); $name = new PHPParser_Node_Name('foo\\bar'); $this->assertFalse($name->isUnqualified()); $this->assertTrue($name->isQualified()); $this->assertFalse($name->isFullyQualified()); $this->assertFalse($name->isRelative()); $name = new PHPParser_Node_Name_FullyQualified('foo'); $this->assertFalse($name->isUnqualified()); $this->assertFalse($name->isQualified()); $this->assertTrue($name->isFullyQualified()); $this->assertFalse($name->isRelative()); $name = new PHPParser_Node_Name_Relative('foo'); $this->assertFalse($name->isUnqualified()); $this->assertFalse($name->isQualified()); $this->assertFalse($name->isFullyQualified()); $this->assertTrue($name->isRelative()); }
protected function rewriteStaticClassLookup(PHPParser_Node_Name &$name) { // don't try to resolve special class names if (in_array((string) $name, array('self', 'parent', 'static'))) { return; } // leave the fully qualified ones alone if (!$name->isFullyQualified()) { // resolve aliases (for non-relative names) if (!$name->isRelative() && isset($this->aliases[$name->getFirst()])) { $name->setFirst($this->aliases[$name->getFirst()]); // if no alias exists prepend current namespace } elseif (null !== $this->namespace) { $name->prepend($this->namespace); } } // finally just replace the namespace separators with underscores $name->set($name->toString('__')); $name->type = PHPParser_Node_Name::NORMAL; // and rewrite some special classes if (isset(self::$specialClasses[(string) $name])) { $name->set(self::$specialClasses[(string) $name]); } }