3 namespace Consolidation\AnnotatedCommand\Hooks\Dispatchers;
5 use Consolidation\AnnotatedCommand\Hooks\HookManager;
6 use Symfony\Component\Console\Command\Command;
7 use Symfony\Component\Console\ConsoleEvents;
8 use Symfony\Component\Console\Event\ConsoleCommandEvent;
9 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
10 use Symfony\Component\EventDispatcher\EventDispatcherInterface;
15 class CommandEventHookDispatcher extends HookDispatcher
18 * @param ConsoleCommandEvent $event
20 public function callCommandEventHooks(ConsoleCommandEvent $event)
23 HookManager::PRE_COMMAND_EVENT,
24 HookManager::COMMAND_EVENT,
25 HookManager::POST_COMMAND_EVENT
27 $commandEventHooks = $this->getHooks($hooks);
28 foreach ($commandEventHooks as $commandEvent) {
29 if ($commandEvent instanceof EventDispatcherInterface) {
30 $commandEvent->dispatch(ConsoleEvents::COMMAND, $event);
32 if (is_callable($commandEvent)) {
33 $commandEvent($event);