Updated the style of the event commands
This commit is contained in:
parent
112c66c944
commit
6633cac4e7
@ -16,6 +16,7 @@ use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Style\SymfonyStyle;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
|
||||
/**
|
||||
@ -58,31 +59,24 @@ EOF
|
||||
*/
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$output = new SymfonyStyle($input, $output);
|
||||
$dispatcher = $this->getEventDispatcher();
|
||||
|
||||
$options = array();
|
||||
if ($event = $input->getArgument('event')) {
|
||||
if (!$dispatcher->hasListeners($event)) {
|
||||
$formatter = $this->getHelperSet()->get('formatter');
|
||||
|
||||
$formattedBlock = $formatter->formatBlock(
|
||||
sprintf('[NOTE] The event "%s" does not have any registered listeners.', $event),
|
||||
'fg=yellow',
|
||||
true
|
||||
);
|
||||
|
||||
$output->writeln($formattedBlock);
|
||||
$output->warning(sprintf('The event "%s" does not have any registered listeners.', $event));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$options = array('event' => $event);
|
||||
} else {
|
||||
$options = array();
|
||||
}
|
||||
|
||||
$helper = new DescriptorHelper();
|
||||
$options['format'] = $input->getOption('format');
|
||||
$options['raw_text'] = $input->getOption('raw');
|
||||
$options['output'] = $output;
|
||||
$helper->describe($output, $dispatcher, $options);
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,7 @@
|
||||
namespace Symfony\Bundle\FrameworkBundle\Console\Descriptor;
|
||||
|
||||
use Symfony\Component\Console\Helper\Table;
|
||||
use Symfony\Component\Console\Style\SymfonyStyle;
|
||||
use Symfony\Component\DependencyInjection\Alias;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Definition;
|
||||
@ -349,42 +350,23 @@ class TextDescriptor extends Descriptor
|
||||
{
|
||||
$event = array_key_exists('event', $options) ? $options['event'] : null;
|
||||
|
||||
$label = 'Registered listeners';
|
||||
if (null !== $event) {
|
||||
$label .= sprintf(' for event <info>%s</info>', $event);
|
||||
$title = sprintf('Registered Listeners for "%s" Event', $event);
|
||||
} else {
|
||||
$label .= ' by event';
|
||||
$title = 'Registered Listeners Grouped by Event';
|
||||
}
|
||||
|
||||
$this->writeText($this->formatSection('event_dispatcher', $label)."\n", $options);
|
||||
$options['output']->title($title);
|
||||
|
||||
$registeredListeners = $eventDispatcher->getListeners($event);
|
||||
$registeredListeners = $eventDispatcher->getListeners($event, true);
|
||||
|
||||
if (null !== $event) {
|
||||
$this->writeText("\n");
|
||||
$table = new Table($this->getOutput());
|
||||
$table->getStyle()->setCellHeaderFormat('%s');
|
||||
$table->setHeaders(array('Order', 'Callable'));
|
||||
|
||||
foreach ($registeredListeners as $order => $listener) {
|
||||
$table->addRow(array(sprintf('#%d', $order + 1), $this->formatCallable($listener)));
|
||||
}
|
||||
|
||||
$table->render();
|
||||
$this->renderEventListenerTable($registeredListeners, $options['output']);
|
||||
} else {
|
||||
ksort($registeredListeners);
|
||||
foreach ($registeredListeners as $eventListened => $eventListeners) {
|
||||
$this->writeText(sprintf("\n<info>[Event]</info> %s\n", $eventListened), $options);
|
||||
|
||||
$table = new Table($this->getOutput());
|
||||
$table->getStyle()->setCellHeaderFormat('%s');
|
||||
$table->setHeaders(array('Order', 'Callable'));
|
||||
|
||||
foreach ($eventListeners as $order => $eventListener) {
|
||||
$table->addRow(array(sprintf('#%d', $order + 1), $this->formatCallable($eventListener)));
|
||||
}
|
||||
|
||||
$table->render();
|
||||
$options['output']->section(sprintf('"%s" event', $eventListened));
|
||||
$this->renderEventListenerTable($eventListeners, $options['output']);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -400,21 +382,20 @@ class TextDescriptor extends Descriptor
|
||||
/**
|
||||
* @param array $array
|
||||
*/
|
||||
private function renderEventListenerTable(array $eventListeners)
|
||||
private function renderEventListenerTable(array $eventListeners, SymfonyStyle $renderer)
|
||||
{
|
||||
$table = new Table($this->getOutput());
|
||||
$table->getStyle()->setCellHeaderFormat('%s');
|
||||
$table->setHeaders(array('Order', 'Callable', 'Priority'));
|
||||
$tableHeaders = array('Order', 'Callable', 'Priority');
|
||||
$tableRows = array();
|
||||
|
||||
krsort($eventListeners);
|
||||
$order = 1;
|
||||
foreach ($eventListeners as $priority => $listeners) {
|
||||
foreach ($listeners as $listener) {
|
||||
$table->addRow(array(sprintf('#%d', $order++), $this->formatCallable($listener), $priority));
|
||||
$tableRows[] = array(sprintf('#%d', $order++), $this->formatCallable($listener), $priority);
|
||||
}
|
||||
}
|
||||
|
||||
$table->render();
|
||||
$renderer->table($tableHeaders, $tableRows);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,8 +1,9 @@
|
||||
<info>[event_dispatcher]</info> Registered listeners for event <info>event1</info>
|
||||
[33mRegistered Listeners for "event1" Event[39m
|
||||
[33m=======================================[39m
|
||||
|
||||
+-------+-------------------+
|
||||
| Order | Callable |
|
||||
+-------+-------------------+
|
||||
| #1 | global_function() |
|
||||
| #2 | \Closure() |
|
||||
+-------+-------------------+
|
||||
------- ------------------- ----------
|
||||
[32mOrder[39m [32mCallable[39m [32mPriority[39m
|
||||
------- ------------------- ----------
|
||||
#1 global_function() 255
|
||||
#2 \Closure() -1
|
||||
------- ------------------- ----------
|
@ -1,16 +1,21 @@
|
||||
<info>[event_dispatcher]</info> Registered listeners by event
|
||||
[33mRegistered Listeners Grouped by Event[39m
|
||||
[33m=====================================[39m
|
||||
|
||||
<info>[Event]</info> event1
|
||||
+-------+-------------------+
|
||||
| Order | Callable |
|
||||
+-------+-------------------+
|
||||
| #1 | global_function() |
|
||||
| #2 | \Closure() |
|
||||
+-------+-------------------+
|
||||
[33m"event1" event[39m
|
||||
[33m--------------[39m
|
||||
|
||||
<info>[Event]</info> event2
|
||||
+-------+-----------------------------------------------------------------------------------+
|
||||
| Order | Callable |
|
||||
+-------+-----------------------------------------------------------------------------------+
|
||||
| #1 | Symfony\Bundle\FrameworkBundle\Tests\Console\Descriptor\CallableClass::__invoke() |
|
||||
+-------+-----------------------------------------------------------------------------------+
|
||||
------- ------------------- ----------
|
||||
[32mOrder[39m [32mCallable[39m [32mPriority[39m
|
||||
------- ------------------- ----------
|
||||
#1 global_function() 255
|
||||
#2 \Closure() -1
|
||||
------- ------------------- ----------
|
||||
|
||||
[33m"event2" event[39m
|
||||
[33m--------------[39m
|
||||
|
||||
------- ----------------------------------------------------------------------------------- ----------
|
||||
[32mOrder[39m [32mCallable[39m [32mPriority[39m
|
||||
------- ----------------------------------------------------------------------------------- ----------
|
||||
#1 Symfony\Bundle\FrameworkBundle\Tests\Console\Descriptor\CallableClass::__invoke() 0
|
||||
------- ----------------------------------------------------------------------------------- ----------
|
Reference in New Issue
Block a user