BetterReflection\NodeCompiler\CompileNodeToValue::compileClassConstFetch PHP Method

compileClassConstFetch() private method

Compile class constants
private compileClassConstFetch ( PhpParser\Node\Expr\ClassConstFetch $node, BetterReflection\NodeCompiler\CompilerContext $context ) : string
$node PhpParser\Node\Expr\ClassConstFetch
$context BetterReflection\NodeCompiler\CompilerContext
return string
    private function compileClassConstFetch(Node\Expr\ClassConstFetch $node, CompilerContext $context)
    {
        $className = implode('\\', $node->class->parts);
        if ($node->name === 'class') {
            return substr((string) (new ResolveTypes())->__invoke([$className], (new ContextFactory())->createForNamespace($context->getSelf()->getNamespaceName(), $context->getSelf()->getLocatedSource()->getSource()))[0]->getFqsen(), 1);
        }
        $classInfo = null;
        if ('self' === $className || 'static' === $className) {
            $classInfo = $context->getSelf();
        }
        if (null === $classInfo) {
            $classInfo = $context->getReflector()->reflect($className);
        }
        /* @var ReflectionClass $classInfo */
        $constName = $node->name;
        return $classInfo->getConstant($constName);
    }