Skip to content

Commit

Permalink
refactored code to use get() when outputting a single route
Browse files Browse the repository at this point in the history
this is useful for a CMS, where in most cases there will be too many routes to make it feasible to load all of them. here a router implementation will be used that will return an empty collection for ->all(). with this refactoring the given routes will not be listed via router:debug, but would still be shown when using router:debug [name]
  • Loading branch information
lsmith77 committed Apr 17, 2012
1 parent e7470ff commit b06537e
Showing 1 changed file with 16 additions and 15 deletions.
31 changes: 16 additions & 15 deletions src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -65,22 +65,22 @@ protected function configure()
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
$router = $this->getContainer()->get('router');
$name = $input->getArgument('name');

$routes = array();
foreach ($router->getRouteCollection()->all() as $name => $route) {
$routes[$name] = $route->compile();
}

if ($input->getArgument('name')) {
$this->outputRoute($output, $routes, $input->getArgument('name'));
if ($name) {
$this->outputRoute($output, $name);
} else {
$this->outputRoutes($output, $routes);
$this->outputRoutes($output);
}
}

protected function outputRoutes(OutputInterface $output, $routes)
protected function outputRoutes(OutputInterface $output)
{
$routes = array();
foreach ($this->getContainer()->get('router')->getRouteCollection()->all() as $name => $route) {
$routes[$name] = $route->compile();
}

$output->writeln($this->getHelper('formatter')->formatSection('router', 'Current routes'));

$maxName = 4;
Expand Down Expand Up @@ -112,15 +112,16 @@ protected function outputRoutes(OutputInterface $output, $routes)
/**
* @throws \InvalidArgumentException When route does not exist
*/
protected function outputRoute(OutputInterface $output, $routes, $name)
protected function outputRoute(OutputInterface $output, $name)
{
$output->writeln($this->getHelper('formatter')->formatSection('router', sprintf('Route "%s"', $name)));

if (!isset($routes[$name])) {
$route = $this->getContainer()->get('router')->getRouteCollection()->get($name);
if (!$route) {
throw new \InvalidArgumentException(sprintf('The route "%s" does not exist.', $name));
}

$route = $routes[$name];
$output->writeln($this->getHelper('formatter')->formatSection('router', sprintf('Route "%s"', $name)));

$route = $route->compile();
$output->writeln(sprintf('<comment>Name</comment> %s', $name));
$output->writeln(sprintf('<comment>Pattern</comment> %s', $route->getPattern()));
$output->writeln(sprintf('<comment>Class</comment> %s', get_class($route)));
Expand Down

0 comments on commit b06537e

Please sign in to comment.