diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php
index 64765c9096..fee2c6543e 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php
+++ b/src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php
@@ -46,7 +46,7 @@ class ContainerDebugCommand extends ContainerAwareCommand
new InputOption('tags', null, InputOption::VALUE_NONE, 'Displays tagged services for an application'),
new InputOption('parameter', null, InputOption::VALUE_REQUIRED, 'Displays a specific parameter for an application'),
new InputOption('parameters', null, InputOption::VALUE_NONE, 'Displays parameters for an application'),
- new InputOption('format', null, InputOption::VALUE_REQUIRED, 'To output description in other formats'),
+ new InputOption('format', null, InputOption::VALUE_REQUIRED, 'To output description in other formats', 'txt'),
new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw description'),
))
->setDescription('Displays current services for an application')
@@ -114,7 +114,9 @@ EOF
}
$helper = new DescriptorHelper();
- $helper->describe($output, $object, $input->getOption('format'), $input->getOption('raw'), $options);
+ $options['format'] = $input->getOption('format');
+ $options['raw_text'] = $input->getOption('raw');
+ $helper->describe($output, $object, $options);
}
/**
diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php
index 4a49715429..e4b49a2679 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php
+++ b/src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php
@@ -17,6 +17,7 @@ use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Routing\RouterInterface;
+use Symfony\Component\Routing\Route;
/**
* A console command for retrieving information about routes
@@ -52,7 +53,7 @@ class RouterDebugCommand extends ContainerAwareCommand
->setDefinition(array(
new InputArgument('name', InputArgument::OPTIONAL, 'A route name'),
new InputOption('show-controllers', null, InputOption::VALUE_NONE, 'Show assigned controllers in overview'),
- new InputOption('format', null, InputOption::VALUE_REQUIRED, 'To output route(s) in other formats'),
+ new InputOption('format', null, InputOption::VALUE_REQUIRED, 'To output route(s) in other formats', 'txt'),
new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw route(s)'),
))
->setDescription('Displays current routes for an application')
@@ -80,9 +81,19 @@ EOF
if (!$route) {
throw new \InvalidArgumentException(sprintf('The route "%s" does not exist.', $name));
}
- $helper->describe($output, $route, $input->getOption('format'), $input->getOption('raw'), array('name' => $name));
+ $this->convertController($route);
+ $helper->describe($output, $route, array(
+ 'format' => $input->getOption('format'),
+ 'raw_text' => $input->getOption('raw'),
+ 'name' => $name,
+ ));
} else {
$routes = $this->getContainer()->get('router')->getRouteCollection();
+
+ foreach ($routes as $route) {
+ $this->convertController($route);
+ }
+
$helper->describe($output, $routes, array(
'format' => $input->getOption('format'),
'raw_text' => $input->getOption('raw'),
@@ -90,4 +101,15 @@ EOF
));
}
}
+
+ private function convertController(Route $route)
+ {
+ $nameParser = $this->getContainer()->get('controller_name_converter');
+ if ($route->hasDefault('_controller')) {
+ try {
+ $route->setDefault('_controller', $nameParser->build($route->getDefault('_controller')));
+ } catch (\InvalidArgumentException $e) {
+ }
+ }
+ }
}
diff --git a/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/JsonDescriptor.php b/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/JsonDescriptor.php
index bfd71972cf..81315a62f1 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/JsonDescriptor.php
+++ b/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/JsonDescriptor.php
@@ -2,6 +2,10 @@
namespace Symfony\Bundle\FrameworkBundle\Console\Descriptor;
+if (!defined('JSON_PRETTY_PRINT')) {
+ define('JSON_PRETTY_PRINT', 128);
+}
+
use Symfony\Component\DependencyInjection\Alias;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
@@ -131,7 +135,7 @@ class JsonDescriptor extends Descriptor
*/
private function writeData(array $data, array $options)
{
- $this->write(json_encode($data, isset($options['json_encoding']) ? $options['json_encoding'] : 0));
+ $this->write(json_encode($data, (isset($options['json_encoding']) ? $options['json_encoding'] : 0) | JSON_PRETTY_PRINT)."\n");
}
/**
diff --git a/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/MarkdownDescriptor.php b/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/MarkdownDescriptor.php
index d3210e0c61..c2a7bb1ebb 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/MarkdownDescriptor.php
+++ b/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/MarkdownDescriptor.php
@@ -28,6 +28,7 @@ class MarkdownDescriptor extends Descriptor
}
$this->describeRoute($route, array('name' => $name));
}
+ $this->write("\n");
}
/**
@@ -49,8 +50,9 @@ class MarkdownDescriptor extends Descriptor
."\n".'- Path-Regex: '.$route->compile()->getRegex();
$this->write(isset($options['name'])
- ? $options['name']."\n".str_repeat('-', strlen($options['name']))."\n".$output
+ ? $options['name']."\n".str_repeat('-', strlen($options['name']))."\n\n".$output
: $output);
+ $this->write("\n");
}
/**
@@ -133,17 +135,17 @@ class MarkdownDescriptor extends Descriptor
}
if (!empty($services['definitions'])) {
- $this->write("\n\nDefinitions\n-----------");
+ $this->write("\n\nDefinitions\n-----------\n");
foreach ($services['definitions'] as $id => $service) {
- $this->write("\n\n");
+ $this->write("\n");
$this->describeContainerDefinition($service, array('id' => $id));
}
}
if (!empty($services['aliases'])) {
- $this->write("\n\nAliases\n-------");
+ $this->write("\n\nAliases\n-------\n");
foreach ($services['aliases'] as $id => $service) {
- $this->write("\n\n");
+ $this->write("\n");
$this->describeContainerAlias($service, array('id' => $id));
}
}
@@ -182,7 +184,7 @@ class MarkdownDescriptor extends Descriptor
}
}
- $this->write(isset($options['id']) ? sprintf("**`%s`:**\n%s", $options['id'], $output) : $output);
+ $this->write(isset($options['id']) ? sprintf("%s\n%s\n\n%s\n", $options['id'], str_repeat('~', strlen($options['id'])), $output) : $output);
}
/**
@@ -193,7 +195,7 @@ class MarkdownDescriptor extends Descriptor
$output = '- Service: `'.$alias.'`'
."\n".'- Public: '.($alias->isPublic() ? 'yes' : 'no');
- $this->write(isset($options['id']) ? sprintf("**`%s`:**\n%s", $options['id'], $output) : $output);
+ $this->write(isset($options['id']) ? sprintf("%s\n%s\n\n%s\n", $options['id'], str_repeat('~', strlen($options['id'])), $output) : $output);
}
private function formatRouterConfig(array $array)
diff --git a/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php b/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php
index ce53d83204..15a99175f5 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php
+++ b/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php
@@ -23,6 +23,7 @@ class TextDescriptor extends Descriptor
$showControllers = isset($options['show_controllers']) && $options['show_controllers'];
$headers = array('Name', 'Method', 'Scheme', 'Host', 'Path');
$table = new TableHelper();
+ $table->setLayout(TableHelper::LAYOUT_COMPACT);
$table->setHeaders($showControllers ? array_merge($headers, array('Controller')) : $headers);
foreach ($routes->all() as $name => $route) {
@@ -35,14 +36,11 @@ class TextDescriptor extends Descriptor
);
if ($showControllers) {
- $defaultData = $route->getDefaults();
- $controller = $defaultData['_controller'] ? $defaultData['_controller'] : '';
+ $controller = $route->getDefault('_controller');
if ($controller instanceof \Closure) {
$controller = 'Closure';
- } else {
- if (is_object($controller)) {
- $controller = get_class($controller);
- }
+ } elseif (is_object($controller)) {
+ $controller = get_class($controller);
}
$row[] = $controller;
}
@@ -84,7 +82,7 @@ class TextDescriptor extends Descriptor
$description[] = 'Host-Regex '.$route->compile()->getHostRegex();
}
- $this->writeText(implode("\n", $description), $options);
+ $this->writeText(implode("\n", $description)."\n", $options);
}
/**
@@ -93,6 +91,7 @@ class TextDescriptor extends Descriptor
protected function describeContainerParameters(ParameterBag $parameters, array $options = array())
{
$table = new TableHelper();
+ $table->setLayout(TableHelper::LAYOUT_COMPACT);
$table->setHeaders(array('Parameter', 'Value'));
foreach ($this->sortParameters($parameters) as $parameter => $value) {
@@ -193,6 +192,7 @@ class TextDescriptor extends Descriptor
$tagsNames = array_keys($maxTags);
$table = new TableHelper();
+ $table->setLayout(TableHelper::LAYOUT_COMPACT);
$table->setHeaders(array_merge(array('Service ID'), $tagsNames, array('Scope', 'Class name')));
foreach ($this->sortServiceIds($serviceIds) as $serviceId) {
@@ -256,7 +256,7 @@ class TextDescriptor extends Descriptor
$description[] = sprintf('Synthetic %s', $definition->isSynthetic() ? 'yes' : 'no');
$description[] = sprintf('Required File %s', $definition->getFile() ? $definition->getFile() : '-');
- $this->writeText(implode("\n", $description), $options);
+ $this->writeText(implode("\n", $description)."\n", $options);
}
/**