Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesUseStatements.php
Строк: 50
<?php

namespace IlluminateViewCompilersConcerns;

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}; ?>";
    }
}
Онлайн: 2
Реклама