| @@ 16-37 (lines=22) @@ | ||
| 13 | use Nette\DI\CompilerExtension; |
|
| 14 | use Symfony\Component\Console\Command\Command; |
|
| 15 | ||
| 16 | class ConsoleExtension extends CompilerExtension |
|
| 17 | { |
|
| 18 | ||
| 19 | public function loadConfiguration() |
|
| 20 | { |
|
| 21 | $builder = $this->getContainerBuilder(); |
|
| 22 | $services = $this->loadFromFile(__DIR__ . '/services.neon'); |
|
| 23 | $this->compiler->parseServices($builder, $services); |
|
| 24 | } |
|
| 25 | ||
| 26 | ||
| 27 | public function beforeCompile() |
|
| 28 | { |
|
| 29 | $builder = $this->getContainerBuilder(); |
|
| 30 | $builder->prepareClassList(); |
|
| 31 | ||
| 32 | $application = $builder->getDefinition($builder->getByType(Application::class)); |
|
| 33 | foreach ($builder->findByType(Command::class) as $definition) { |
|
| 34 | $application->addSetup('add', ['@' . $definition->getClass()]); |
|
| 35 | } |
|
| 36 | } |
|
| 37 | } |
|
| 38 | ||
| @@ 16-38 (lines=23) @@ | ||
| 13 | use ApiGen\Contracts\EventDispatcher\EventSubscriberInterface; |
|
| 14 | use Nette\DI\CompilerExtension; |
|
| 15 | ||
| 16 | class EventDispatcherExtension extends CompilerExtension |
|
| 17 | { |
|
| 18 | ||
| 19 | public function loadConfiguration() |
|
| 20 | { |
|
| 21 | $builder = $this->getContainerBuilder(); |
|
| 22 | $services = $this->loadFromFile(__DIR__ . '/services.neon'); |
|
| 23 | $this->compiler->parseServices($builder, $services); |
|
| 24 | } |
|
| 25 | ||
| 26 | ||
| 27 | public function beforeCompile() |
|
| 28 | { |
|
| 29 | $builder = $this->getContainerBuilder(); |
|
| 30 | $builder->prepareClassList(); |
|
| 31 | ||
| 32 | $eventDispatcherDefinition = $builder->getDefinition($builder->getByType(EventDispatcherInterface::class)); |
|
| 33 | ||
| 34 | foreach ($builder->findByType(EventSubscriberInterface::class) as $subscriber) { |
|
| 35 | $eventDispatcherDefinition->addSetup('addSubscriber', ['@' . $subscriber->getClass()]); |
|
| 36 | } |
|
| 37 | } |
|
| 38 | } |
|
| 39 | ||