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; + } +}