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

Breadcrumb

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

function DebugClassLoader::getUseStatements

1 call to DebugClassLoader::getUseStatements()
DebugClassLoader::patchMethod in vendor/symfony/error-handler/DebugClassLoader.php
Utility method to add

File

vendor/symfony/error-handler/DebugClassLoader.php, line 1083

Class

DebugClassLoader
Autoloader checking if the class is really defined in the file found.

Namespace

Symfony\Component\ErrorHandler

Code

private static function getUseStatements(string $file) : array {
    $namespace = '';
    $useMap = [];
    $useOffset = 0;
    if (!is_file($file)) {
        return [
            $namespace,
            $useOffset,
            $useMap,
        ];
    }
    $file = file($file);
    for ($i = 0; $i < \count($file); ++$i) {
        if (preg_match('/^(class|interface|trait|abstract) /', $file[$i])) {
            break;
        }
        if (str_starts_with($file[$i], 'namespace ')) {
            $namespace = substr($file[$i], \strlen('namespace '), -2) . '\\';
            $useOffset = $i + 2;
        }
        if (str_starts_with($file[$i], 'use ')) {
            $useOffset = $i;
            for (; str_starts_with($file[$i], 'use '); ++$i) {
                $u = explode(' as ', substr($file[$i], 4, -2), 2);
                if (1 === \count($u)) {
                    $p = strrpos($u[0], '\\');
                    $useMap[substr($u[0], false !== $p ? 1 + $p : 0)] = $u[0];
                }
                else {
                    $useMap[$u[1]] = $u[0];
                }
            }
            break;
        }
    }
    return [
        $namespace,
        $useOffset,
        $useMap,
    ];
}
RSS feed
Powered by Drupal