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\ErrorHandlerCode
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,
];
}