Вход Регистрация
Файл: vendor/symfony/routing/Loader/Configurator/RoutingConfigurator.php
Строк: 118
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentRoutingLoaderConfigurator;

use 
SymfonyComponentRoutingLoaderPhpFileLoader;
use 
SymfonyComponentRoutingRouteCollection;

/**
 * @author Nicolas Grekas <p@tchwork.com>
 */
class RoutingConfigurator
{
    use 
TraitsAddTrait;

    private 
PhpFileLoader $loader;
    private 
string $path;
    private 
string $file;
    private ?
string $env;

    public function 
__construct(RouteCollection $collectionPhpFileLoader $loaderstring $pathstring $file, ?string $env null)
    {
        
$this->collection $collection;
        
$this->loader $loader;
        
$this->path $path;
        
$this->file $file;
        
$this->env $env;
    }

    
/**
     * @param string|string[]|null $exclude Glob patterns to exclude from the import
     */
    
final public function import(string|array $resource, ?string $type nullbool $ignoreErrors falsestring|array|null $exclude null): ImportConfigurator
    
{
        
$this->loader->setCurrentDir(dirname($this->path));

        
$imported $this->loader->import($resource$type$ignoreErrors$this->file$exclude) ?: [];
        if (!
is_array($imported)) {
            return new 
ImportConfigurator($this->collection$imported);
        }

        
$mergedCollection = new RouteCollection();
        foreach (
$imported as $subCollection) {
            
$mergedCollection->addCollection($subCollection);
        }

        return new 
ImportConfigurator($this->collection$mergedCollection);
    }

    final public function 
collection(string $name ''): CollectionConfigurator
    
{
        return new 
CollectionConfigurator($this->collection$name);
    }

    
/**
     * Get the current environment to be able to write conditional configuration.
     */
    
final public function env(): ?string
    
{
        return 
$this->env;
    }

    final public function 
withPath(string $path): static
    {
        
$clone = clone $this;
        
$clone->path $clone->file $path;

        return 
$clone;
    }
}
Онлайн: 3
Реклама