| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 | 
							- <?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\Exception\RouteCircularReferenceException;
 
- use Symfony\Component\Routing\Exception\RouteNotFoundException;
 
- 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;
 
-     }
 
-     public function getCompiledAliases(): array
 
-     {
 
-         $routes = $this->getRoutes();
 
-         $compiledAliases = [];
 
-         foreach ($routes->getAliases() as $name => $alias) {
 
-             $deprecations = $alias->isDeprecated() ? [$alias->getDeprecation($name)] : [];
 
-             $currentId = $alias->getId();
 
-             $visited = [];
 
-             while (null !== $alias = $routes->getAlias($currentId) ?? null) {
 
-                 if (false !== $searchKey = array_search($currentId, $visited)) {
 
-                     $visited[] = $currentId;
 
-                     throw new RouteCircularReferenceException($currentId, \array_slice($visited, $searchKey));
 
-                 }
 
-                 if ($alias->isDeprecated()) {
 
-                     $deprecations[] = $deprecation = $alias->getDeprecation($currentId);
 
-                     trigger_deprecation($deprecation['package'], $deprecation['version'], $deprecation['message']);
 
-                 }
 
-                 $visited[] = $currentId;
 
-                 $currentId = $alias->getId();
 
-             }
 
-             if (null === $target = $routes->get($currentId)) {
 
-                 throw new RouteNotFoundException(sprintf('Target route "%s" for alias "%s" does not exist.', $currentId, $name));
 
-             }
 
-             $compiledTarget = $target->compile();
 
-             $compiledAliases[$name] = [
 
-                 $compiledTarget->getVariables(),
 
-                 $target->getDefaults(),
 
-                 $target->getRequirements(),
 
-                 $compiledTarget->getTokens(),
 
-                 $compiledTarget->getHostTokens(),
 
-                 $target->getSchemes(),
 
-                 $deprecations,
 
-             ];
 
-         }
 
-         return $compiledAliases;
 
-     }
 
-     /**
 
-      * {@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));
 
-         }
 
-         foreach ($this->getCompiledAliases() as $alias => $properties) {
 
-             $routes .= sprintf("\n    '%s' => %s,", $alias, CompiledUrlMatcherDumper::export($properties));
 
-         }
 
-         return $routes;
 
-     }
 
- }
 
 
  |