91c52202305c4570a9ab2598bcbcfed69f14877b
[yaffs-website] / vendor / drupal / console / src / Generator / TwigExtensionGenerator.php
1 <?php
2
3 /**
4  * @file
5  * Contains \Drupal\Console\Generator\TwigExtensionGenerator.
6  */
7
8 namespace Drupal\Console\Generator;
9
10 use Drupal\Console\Core\Generator\Generator;
11 use Drupal\Console\Extension\Manager;
12
13 /**
14  * Class TwigExtensionGenerator
15  *
16  * @package Drupal\Console\Generator
17  */
18 class TwigExtensionGenerator extends Generator
19 {
20     /**
21      * @var Manager
22      */
23     protected $extensionManager;
24
25     /**
26      * AuthenticationProviderGenerator constructor.
27      *
28      * @param Manager $extensionManager
29      */
30     public function __construct(
31         Manager $extensionManager
32     ) {
33         $this->extensionManager = $extensionManager;
34     }
35
36     /**
37    * Generator Service.
38    *
39    * @param string $module   Module name
40    * @param string $name     Service name
41    * @param string $class    Class name
42    * @param array  $services List of services
43    */
44     public function generate($module, $name, $class, $services)
45     {
46         $parameters = [
47         'module' => $module,
48         'name' => $name,
49         'class' => $class,
50         'class_path' => sprintf('Drupal\%s\TwigExtension\%s', $module, $class),
51         'services' => $services,
52         'tags' => ['name' => 'twig.extension'],
53         'file_exists' => file_exists($this->extensionManager->getModule($module)->getPath() .'/'.$module.'.services.yml'),
54         ];
55
56         $this->renderFile(
57             'module/services.yml.twig',
58             $this->extensionManager->getModule($module)->getPath() .'/'.$module.'.services.yml',
59             $parameters,
60             FILE_APPEND
61         );
62
63         $this->renderFile(
64             'module/src/TwigExtension/twig-extension.php.twig',
65             $this->extensionManager->getModule($module)->getPath() .'/src/TwigExtension/'.$class.'.php',
66             $parameters
67         );
68     }
69 }