Security update for Core, with self-updated composer
[yaffs-website] / vendor / drupal / console / src / Generator / EventSubscriberGenerator.php
1 <?php
2
3 /**
4  * @file
5  * Contains \Drupal\Console\Generator\ServiceGenerator.
6  */
7
8 namespace Drupal\Console\Generator;
9
10 use Drupal\Console\Core\Generator\Generator;
11 use Drupal\Console\Extension\Manager;
12
13 class EventSubscriberGenerator extends Generator
14 {
15     /**
16      * @var Manager
17      */
18     protected $extensionManager;
19
20     /**
21      * AuthenticationProviderGenerator constructor.
22      *
23      * @param Manager $extensionManager
24      */
25     public function __construct(
26         Manager $extensionManager
27     ) {
28         $this->extensionManager = $extensionManager;
29     }
30
31     /**
32      * {@inheritdoc}
33      */
34     public function generate(array $parameters)
35     {
36         $module = $parameters['module'];
37         $class = $parameters['class'];
38         $moduleInstance = $this->extensionManager->getModule($module);
39         $modulePath = $moduleInstance->getPath() . '/' . $module;
40         $parameters = array_merge($parameters,
41             [
42           'class_path' => sprintf('Drupal\%s\EventSubscriber\%s', $module, $class),
43           'tags' => ['name' => 'event_subscriber'],
44           'file_exists' => file_exists($modulePath . '.services.yml'),
45         ]);
46
47         $this->renderFile(
48             'module/src/event-subscriber.php.twig',
49             $moduleInstance->getSourcePath() . '/EventSubscriber/' . $class . '.php',
50             $parameters
51         );
52
53         $this->renderFile(
54             'module/services.yml.twig',
55             $modulePath . '.services.yml',
56             $parameters,
57             FILE_APPEND
58         );
59     }
60 }