Version 1
[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      * Generator Service.
33      *
34      * @param string $module   Module name
35      * @param string $name     Service name
36      * @param string $class    Class name
37      * @param string $events
38      * @param array  $services List of services
39      */
40     public function generate($module, $name, $class, $events, $services)
41     {
42         $parameters = [
43           'module' => $module,
44           'name' => $name,
45           'class' => $class,
46           'class_path' => sprintf('Drupal\%s\EventSubscriber\%s', $module, $class),
47           'events' => $events,
48           'services' => $services,
49           'tags' => ['name' => 'event_subscriber'],
50           'file_exists' => file_exists($this->extensionManager->getModule($module)->getPath() .'/'.$module.'.services.yml'),
51         ];
52
53         $this->renderFile(
54             'module/src/event-subscriber.php.twig',
55             $this->extensionManager->getModule($module)->getSourcePath().'/EventSubscriber/'.$class.'.php',
56             $parameters
57         );
58
59         $this->renderFile(
60             'module/services.yml.twig',
61             $this->extensionManager->getModule($module)->getPath() .'/'.$module.'.services.yml',
62             $parameters,
63             FILE_APPEND
64         );
65     }
66 }