/
githubmirror
/
framework
Обзор
Документация
Войти
/
githubmirror
/
framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
13.x
src/Illuminate/View/Compilers/Concerns/CompilesUseStatements.php
46 строк
1 KB
Ro
[12.x] Improve @use directive to support function and const modifiers (#55583)
29 апр 2025, 22:38
Не верифицирован
29 апр 2025, 22:38
d74311d
Код
Авторство
О чём код?
<?php namespace Illuminate\View\Compilers\Concerns; trait CompilesUseStatements { /** * Compile the use statements into valid PHP. * * @param string $expression * @return string */ protected function compileUse($expression) { $expression = trim(preg_replace('/[()]/', '', $expression), " '\""); // Isolate alias... if (str_contains($expression, '{')) { $pathWithOptionalModifier = $expression; $aliasWithLeadingSpace = ''; } else { $segments = explode(',', $expression); $pathWithOptionalModifier = trim($segments[0], " '\""); $aliasWithLeadingSpace = isset($segments[1]) ? ' as '.trim($segments[1], " '\"") : ''; } // Split modifier and path... if (str_starts_with($pathWithOptionalModifier, 'function ')) { $modifierWithTrailingSpace = 'function '; $path = explode(' ', $pathWithOptionalModifier, 2)[1] ?? $pathWithOptionalModifier; } elseif (str_starts_with($pathWithOptionalModifier, 'const ')) { $modifierWithTrailingSpace = 'const '; $path = explode(' ', $pathWithOptionalModifier, 2)[1] ?? $pathWithOptionalModifier; } else { $modifierWithTrailingSpace = ''; $path = $pathWithOptionalModifier; } $path = ltrim($path, '\\'); return "<?php use {$modifierWithTrailingSpace}\\{$path}{$aliasWithLeadingSpace}; ?>"; } }