public getGlobalConstantByFQSEN ( |
||
$fqsen | The FQSEN of a global constant to get | |
return | Phan\Language\Element\GlobalConstant | A global constant with the given FQSEN |
/** * @return ClassConstant * Get the (non-class) constant associated with this node * in this context * * @throws NodeException * An exception is thrown if we can't understand the node * * @throws CodeBaseExtension * An exception is thrown if we can't find the given * class */ public function getConst() : ClassConstant { assert($this->node->kind === \ast\AST_CONST, "Node must be of type \\ast\\AST_CONST"); if ($this->node->children['name']->kind !== \ast\AST_NAME) { throw new NodeException($this->node, "Can't determine constant name"); } $constant_name = $this->node->children['name']->children['name']; $fqsen = FullyQualifiedGlobalConstantName::fromStringInContext($constant_name, $this->context); if (!$this->code_base->hasGlobalConstantWithFQSEN($fqsen)) { throw new IssueException(Issue::fromType(Issue::UndeclaredConstant)($this->context->getFile(), $this->node->lineno ?? 0, [$constant_name])); } return $this->code_base->getGlobalConstantByFQSEN($fqsen); }