function StaticReflectionParser::fullySpecifyName

Same name and namespace in other branches
  1. 10 core/lib/Drupal/Component/Annotation/Doctrine/StaticReflectionParser.php \Drupal\Component\Annotation\Doctrine\StaticReflectionParser::fullySpecifyName()

Converts a name into a fully specified name.

Parameters

string $name The name to convert.:

Return value

string

1 call to StaticReflectionParser::fullySpecifyName()
StaticReflectionParser::parse in core/lib/Drupal/Component/Annotation/Doctrine/StaticReflectionParser.php

File

core/lib/Drupal/Component/Annotation/Doctrine/StaticReflectionParser.php, line 365

Class

StaticReflectionParser
Parses a file for namespaces/use/class declarations.

Namespace

Drupal\Component\Annotation\Doctrine

Code

private function fullySpecifyName(string $name) : string {
    $nsPos = strpos($name, '\\');
    $fullySpecified = false;
    if ($nsPos === 0) {
        $fullySpecified = true;
    }
    else {
        if ($nsPos) {
            $prefix = strtolower(substr($name, 0, $nsPos));
            $postfix = substr($name, $nsPos);
        }
        else {
            $prefix = strtolower($name);
            $postfix = '';
        }
        foreach ($this->useStatements as $alias => $use) {
            if ($alias !== $prefix) {
                continue;
            }
            $name = '\\' . $use . $postfix;
            $fullySpecified = true;
        }
    }
    if (!$fullySpecified) {
        $name = '\\' . $this->namespace . '\\' . $name;
    }
    return $name;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.