| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | <?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 Symfony\Component\Routing\Loader\Configurator;use Symfony\Component\Routing\Loader\PhpFileLoader;use Symfony\Component\Routing\RouteCollection;/** * @author Nicolas Grekas <p@tchwork.com> */class RoutingConfigurator{    use Traits\AddTrait;    private $loader;    private $path;    private $file;    private $env;    public function __construct(RouteCollection $collection, PhpFileLoader $loader, string $path, string $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($resource, string $type = null, bool $ignoreErrors = false, $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;    }    /**     * @return static     */    final public function withPath(string $path): self    {        $clone = clone $this;        $clone->path = $clone->file = $path;        return $clone;    }}
 |