From a4779d7e55870a9c104912ffd96bf861a77ea4b3 Mon Sep 17 00:00:00 2001 From: Romain Neutron Date: Thu, 30 May 2013 20:09:31 +0200 Subject: [PATCH] Add routes dumper --- bin/developer | 2 + .../Command/Developer/RoutesDumper.php | 58 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 lib/Alchemy/Phrasea/Command/Developer/RoutesDumper.php diff --git a/bin/developer b/bin/developer index 4ba8a54cc3..0202c88217 100755 --- a/bin/developer +++ b/bin/developer @@ -12,6 +12,7 @@ use Alchemy\Phrasea\CLI; use Alchemy\Phrasea\Core\Version; use Alchemy\Phrasea\Command\Developer\RegenerateSqliteDb; +use Alchemy\Phrasea\Command\Developer\RoutesDumper; use Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper; use Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper; @@ -60,6 +61,7 @@ try { } $cli->command(new RegenerateSqliteDb()); + $cli->command(new RoutesDumper()); $cli['console']->addCommands(array( // DBAL Commands diff --git a/lib/Alchemy/Phrasea/Command/Developer/RoutesDumper.php b/lib/Alchemy/Phrasea/Command/Developer/RoutesDumper.php new file mode 100644 index 0000000000..270787adab --- /dev/null +++ b/lib/Alchemy/Phrasea/Command/Developer/RoutesDumper.php @@ -0,0 +1,58 @@ +container['routes'] as $name => $route) { + $methods = implode('|', $route->getMethods()); + $pattern = $route->getPattern(); + $warning = false; + + $maxNameLength = max($maxNameLength, strlen($name)); + $maxMethodsLength = max($maxMethodsLength, strlen($methods)); + + if (0 === strpos($name, '_')) { + $result++; + $warning = true; + } + + $data[] = array( + 'name' => $name, + 'methods' => $methods ?: 'ALL', + 'pattern' => $pattern, + 'warning' => $warning + ); + } + + foreach ($data as $route) { + $line = sprintf('%-'.$maxMethodsLength.'s %-'.$maxNameLength.'s %s', $route['methods'], $route['name'], $route['pattern']); + + if ($route['warning']) { + $line = str_replace(' '.$route['name'].' ', ' '.$route['name'].' ', $line); + } + + $output->writeln($line); + } + + return $result; + } +}