Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. TokenParser.php

function TokenParser::parseUseStatement

Parses a single use statement.

Return value

array<string, string> A list with all found class names for a use statement.

1 call to TokenParser::parseUseStatement()
TokenParser::parseUseStatements in vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php
Gets all use statements.

File

vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php, line 96

Class

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

Namespace

Doctrine\Common\Annotations

Code

public function parseUseStatement() {
    $groupRoot = '';
    $class = '';
    $alias = '';
    $statements = [];
    $explicitAlias = false;
    while ($token = $this->next()) {
        if (!$explicitAlias && $token[0] === T_STRING) {
            $class .= $token[1];
            $alias = $token[1];
        }
        elseif ($explicitAlias && $token[0] === T_STRING) {
            $alias = $token[1];
        }
        elseif (PHP_VERSION_ID >= 80000 && ($token[0] === T_NAME_QUALIFIED || $token[0] === T_NAME_FULLY_QUALIFIED)) {
            $class .= $token[1];
            $classSplit = explode('\\', $token[1]);
            $alias = $classSplit[count($classSplit) - 1];
        }
        elseif ($token[0] === T_NS_SEPARATOR) {
            $class .= '\\';
            $alias = '';
        }
        elseif ($token[0] === T_AS) {
            $explicitAlias = true;
            $alias = '';
        }
        elseif ($token === ',') {
            $statements[strtolower($alias)] = $groupRoot . $class;
            $class = '';
            $alias = '';
            $explicitAlias = false;
        }
        elseif ($token === ';') {
            $statements[strtolower($alias)] = $groupRoot . $class;
            break;
        }
        elseif ($token === '{') {
            $groupRoot = $class;
            $class = '';
        }
        elseif ($token === '}') {
            continue;
        }
        else {
            break;
        }
    }
    return $statements;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal