public function testUseDeclarations() { $snippet = <<<'EOF' namespace Test { use const Other\MY_CONST; use function Other\my_func; use Other\MyClass; use Other\OtherClass as Bind; class TestClass {} } EOF; /** @var NamespaceNode $namespace */ $namespace = Parser::parseSnippet($snippet); $declarations = $namespace->getUseDeclarations(); $this->assertCount(4, $declarations); $aliases = $namespace->getClassAliases(); $this->assertCount(2, $aliases); $this->assertArrayHasKey('MyClass', $aliases); $this->assertEquals('\\Other\\MyClass', $aliases['MyClass']); $this->assertArrayHasKey('Bind', $aliases); $this->assertEquals('\\Other\\OtherClass', $aliases['Bind']); $class_node = $namespace->find(Filter::isClass('TestClass'))[0]; $this->assertTrue($namespace->owns($class_node)); $class_node = ClassNode::create('Dummy'); $this->assertFalse($namespace->owns($class_node)); }
/** * @return \Pharborist\Objects\ClassNode */ public function render() { if (empty($this->controller)) { $render = ['#theme' => 'dmu_form', '#module' => $this->target->id(), '#form_id' => $this->formID, '#class' => $this->toTitleCase($this->formID), '#config' => $this->isConfig]; $source = \Drupal::service('renderer')->renderPlain($render); $this->controller = Parser::parseSource($source)->find(Filter::isClass($render['#class']))->get(0); } return $this->controller; }
/** * {@inheritdoc} */ public function get($identifier) { $file = $this->getQuery(['file'])->condition('id', $identifier)->execute()->fetchField(); return $this->target->open($file)->find(Filter::isClass($identifier))->get(0); }