3 namespace Consolidation\AnnotatedCommand\Hooks\Dispatchers;
5 use Consolidation\AnnotatedCommand\Hooks\HookManager;
6 use Consolidation\AnnotatedCommand\AnnotationData;
7 use Consolidation\AnnotatedCommand\Hooks\InitializeHookInterface;
8 use Symfony\Component\Console\Command\Command;
9 use Symfony\Component\Console\Input\InputInterface;
14 class InitializeHookDispatcher extends HookDispatcher implements InitializeHookInterface
16 public function initialize(
17 InputInterface $input,
18 AnnotationData $annotationData
21 HookManager::PRE_INITIALIZE,
22 HookManager::INITIALIZE,
23 HookManager::POST_INITIALIZE
25 $providers = $this->getHooks($hooks, $annotationData);
26 foreach ($providers as $provider) {
27 $this->callInitializeHook($provider, $input, $annotationData);
31 protected function callInitializeHook($provider, $input, AnnotationData $annotationData)
33 if ($provider instanceof InitializeHookInterface) {
34 return $provider->initialize($input, $annotationData);
36 if (is_callable($provider)) {
37 return $provider($input, $annotationData);