Skip to content
This repository was archived by the owner on Jan 14, 2019. It is now read-only.

Commit 461b1bb

Browse files
authored
Merge pull request #39 from Hexanet/console-error-event
Use the new ConsoleErrorEvent when possible
2 parents ad42fec + 742ae91 commit 461b1bb

File tree

3 files changed

+17
-18
lines changed

3 files changed

+17
-18
lines changed

src/DependencyInjection/Configuration.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,6 @@
55
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
66
use Symfony\Component\Config\Definition\ConfigurationInterface;
77

8-
/**
9-
* This is the class that validates and merges configuration from your app/config files
10-
*
11-
* To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html#cookbook-bundles-extension-config-class}
12-
*/
138
class Configuration implements ConfigurationInterface
149
{
1510
/**

src/DependencyInjection/HexanetMonologExtraExtension.php

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,13 @@
22

33
namespace Hexanet\Common\MonologExtraBundle\DependencyInjection;
44

5+
use Symfony\Component\Console\ConsoleEvents;
56
use Symfony\Component\DependencyInjection\ContainerBuilder;
67
use Symfony\Component\Config\FileLocator;
78
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
89
use Symfony\Component\DependencyInjection\Loader;
10+
use Symfony\Component\HttpKernel\KernelEvents;
911

10-
/**
11-
* This is the class that loads and manages your bundle configuration
12-
*
13-
* To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html}
14-
*/
1512
class HexanetMonologExtraExtension extends Extension
1613
{
1714
/**
@@ -79,8 +76,10 @@ protected function addConsoleExceptionListener(ContainerBuilder $container, arra
7976
return;
8077
}
8178

79+
$event = class_exists('Symfony\Component\Console\Event\ConsoleErrorEvent') ? ConsoleEvents::ERROR : ConsoleEvents::EXCEPTION;
80+
8281
$definition = $container->getDefinition('hexanet_monolog_extra.listener.console_exception');
83-
$definition->addTag('kernel.event_listener', ['event' => 'console.exception', 'method' => 'onConsoleException']);
82+
$definition->addTag('kernel.event_listener', ['event' => $event, 'method' => 'onConsoleException']);
8483
}
8584

8685
protected function addRequestResponseListener(ContainerBuilder $container, array $config)
@@ -94,11 +93,11 @@ protected function addRequestResponseListener(ContainerBuilder $container, array
9493
$definition = $container->getDefinition('hexanet_monolog_extra.listener.request_response');
9594

9695
if ($config['logger']['on_request']) {
97-
$definition->addTag('kernel.event_listener', ['event' => 'kernel.request', 'method' => 'onRequest']);
96+
$definition->addTag('kernel.event_listener', ['event' => KernelEvents::REQUEST, 'method' => 'onRequest']);
9897
}
9998

10099
if ($config['logger']['on_response']) {
101-
$definition->addTag('kernel.event_listener', ['event' => 'kernel.response', 'method' => 'onResponse']);
100+
$definition->addTag('kernel.event_listener', ['event' => KernelEvents::RESPONSE, 'method' => 'onResponse']);
102101
}
103102
}
104103

@@ -111,7 +110,7 @@ protected function addCommandListener(ContainerBuilder $container, array $config
111110
}
112111

113112
$definition = $container->getDefinition('hexanet_monolog_extra.listener.command');
114-
$definition->addTag('kernel.event_listener', ['event' => 'console.command', 'method' => 'onCommandResponse']);
113+
$definition->addTag('kernel.event_listener', ['event' => ConsoleEvents::COMMAND, 'method' => 'onCommandResponse']);
115114
}
116115

117116
protected function addUidToResponseListener(ContainerBuilder $container, array $config)
@@ -123,6 +122,6 @@ protected function addUidToResponseListener(ContainerBuilder $container, array $
123122
}
124123

125124
$definition = $container->getDefinition('hexanet_monolog_extra.listener.uid_to_response');
126-
$definition->addTag('kernel.event_listener', ['event' => 'kernel.response', 'method' => 'onKernelResponse']);
125+
$definition->addTag('kernel.event_listener', ['event' => KernelEvents::RESPONSE, 'method' => 'onKernelResponse']);
127126
}
128127
}

src/EventListener/ConsoleExceptionListener.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Hexanet\Common\MonologExtraBundle\EventListener;
44

5+
use Symfony\Component\Console\Event\ConsoleErrorEvent;
56
use Symfony\Component\Console\Event\ConsoleExceptionEvent;
67
use Psr\Log\LoggerInterface;
78

@@ -21,12 +22,16 @@ public function __construct(LoggerInterface $logger)
2122
}
2223

2324
/**
24-
* @param ConsoleExceptionEvent $event
25+
* @param ConsoleErrorEvent $event
2526
*/
26-
public function onConsoleException(ConsoleExceptionEvent $event) : void
27+
public function onConsoleException(ConsoleErrorEvent $event) : void
2728
{
29+
if (!$event instanceof ConsoleExceptionEvent && !$event instanceof ConsoleErrorEvent) {
30+
throw new \InvalidArgumentException('Event must be an instance of ConsoleExceptionEvent or ConsoleErrorEvent');
31+
}
32+
2833
$command = $event->getCommand();
29-
$exception = $event->getException();
34+
$exception = $event instanceof ConsoleErrorEvent ? $event->getError() : $event->getException();
3035

3136
$message = sprintf(
3237
'%s: %s (uncaught exception) at %s line %s while running console command `%s`',

0 commit comments

Comments
 (0)