7ba1484162715fd92fee97fc2d67395de806665e
[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      * {@inheritdoc}
38      */
39     public function generate(array $parameters)
40     {
41         $module = $parameters['module'];
42         $class = $parameters['class'];
43         $modulePath = $this->extensionManager->getModule($module)->getPath();
44         $moduleServiceYaml = $modulePath . '/' . $module . '.services.yml';
45         $parameters['class_path'] = sprintf('Drupal\%s\TwigExtension\%s', $module, $class);
46         $parameters['tags'] = ['name' => 'twig.extension'];
47         $parameters['file_exists'] = file_exists($moduleServiceYaml);
48
49         $this->renderFile(
50             'module/services.yml.twig',
51             $moduleServiceYaml,
52             $parameters,
53             FILE_APPEND
54         );
55
56         $this->renderFile(
57             'module/src/TwigExtension/twig-extension.php.twig',
58             $modulePath . '/src/TwigExtension/' . $class . '.php',
59             $parameters
60         );
61     }
62 }