Example #1
0
 public function testPrepend()
 {
     $name = new PHPParser_Node_Name('foo');
     $name->prepend('bar');
     $this->assertEquals('bar\\foo', $name->toString());
     $name->prepend('foo\\bar');
     $this->assertEquals('foo\\bar\\bar\\foo', $name->toString());
 }
Example #2
0
    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]);
        }
    }