Initial Drupal 11 with DDEV setup
This commit is contained in:
		
							
								
								
									
										121
									
								
								vendor/symfony/routing/Generator/Dumper/CompiledUrlGeneratorDumper.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								vendor/symfony/routing/Generator/Dumper/CompiledUrlGeneratorDumper.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,121 @@
 | 
			
		||||
<?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;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function dump(array $options = []): string
 | 
			
		||||
    {
 | 
			
		||||
        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;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user