| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | <?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\Generator\Dumper;use Symfony\Component\Routing\Matcher\Dumper\CompiledUrlMatcherDumper;/** * CompiledUrlGeneratorDumper creates a PHP array to be used with CompiledUrlGenerator. * * @author Fabien Potencier <fabien@symfony.com> * @author Tobias Schultze <http://tobion.de> * @author Nicolas Grekas <p@tchwork.com> */class CompiledUrlGeneratorDumper extends GeneratorDumper{    public function getCompiledRoutes(): array    {        $compiledRoutes = [];        foreach ($this->getRoutes()->all() as $name => $route) {            $compiledRoute = $route->compile();            $compiledRoutes[$name] = [                $compiledRoute->getVariables(),                $route->getDefaults(),                $route->getRequirements(),                $compiledRoute->getTokens(),                $compiledRoute->getHostTokens(),                $route->getSchemes(),            ];        }        return $compiledRoutes;    }    /**     * {@inheritdoc}     */    public function dump(array $options = [])    {        return <<<EOF<?php// This file has been auto-generated by the Symfony Routing Component.return [{$this->generateDeclaredRoutes()}];EOF;    }    /**     * Generates PHP code representing an array of defined routes     * together with the routes properties (e.g. requirements).     */    private function generateDeclaredRoutes(): string    {        $routes = '';        foreach ($this->getCompiledRoutes() as $name => $properties) {            $routes .= sprintf("\n    '%s' => %s,", $name, CompiledUrlMatcherDumper::export($properties));        }        return $routes;    }}
 |