class CompiledUrlGeneratorDumper
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>
Hierarchy
- class \Symfony\Component\Routing\Generator\Dumper\GeneratorDumper implements \Symfony\Component\Routing\Generator\Dumper\GeneratorDumperInterface
- class \Symfony\Component\Routing\Generator\Dumper\CompiledUrlGeneratorDumper extends \Symfony\Component\Routing\Generator\Dumper\GeneratorDumper
Expanded class hierarchy of CompiledUrlGeneratorDumper
1 file declares its use of CompiledUrlGeneratorDumper
- Router.php in vendor/
symfony/ routing/ Router.php
File
-
vendor/
symfony/ routing/ Generator/ Dumper/ CompiledUrlGeneratorDumper.php, line 25
Namespace
Symfony\Component\Routing\Generator\DumperView source
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 [{<span class="php-variable">$this</span>-><span class="php-function-or-constant function member-of-self">generateDeclaredRoutes</span>()}
];
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;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title |
---|---|---|---|---|
CompiledUrlGeneratorDumper::dump | public | function | Dumps a set of routes to a string representation of executable code that can then be used to generate a URL of such a route. |
Overrides GeneratorDumperInterface::dump |
CompiledUrlGeneratorDumper::generateDeclaredRoutes | private | function | Generates PHP code representing an array of defined routes together with the routes properties (e.g. requirements). |
|
CompiledUrlGeneratorDumper::getCompiledAliases | public | function | ||
CompiledUrlGeneratorDumper::getCompiledRoutes | public | function | ||
GeneratorDumper::getRoutes | public | function | Gets the routes to dump. | Overrides GeneratorDumperInterface::getRoutes |
GeneratorDumper::__construct | public | function |