Security update for permissions_by_term
[yaffs-website] / vendor / drupal / console / src / Generator / CommandGenerator.php
1 <?php
2
3 /**
4  * @file
5  * Contains \Drupal\Console\Generator\CommandGenerator.
6  */
7
8 namespace Drupal\Console\Generator;
9
10 use Drupal\Console\Extension\Manager;
11 use Drupal\Console\Core\Utils\TranslatorManagerInterface;
12 use Drupal\Console\Core\Generator\Generator;
13
14 /**
15  * Class CommandGenerator
16  *
17  * @package Drupal\Console\Generator
18  */
19 class CommandGenerator extends Generator
20 {
21     /**
22      * @var Manager
23      */
24     protected $extensionManager;
25
26     /**
27      * @var TranslatorManagerInterface
28      */
29     protected $translatorManager;
30
31     /**
32      * CommandGenerator constructor.
33      *
34      * @param Manager                    $extensionManager
35      * @param TranslatorManagerInterface $translatorManager
36      */
37     public function __construct(
38         Manager $extensionManager,
39         TranslatorManagerInterface $translatorManager
40     ) {
41         $this->extensionManager = $extensionManager;
42         $this->translatorManager = $translatorManager;
43     }
44
45     /**
46      * Generate.
47      *
48      * @param string  $extension      Extension name
49      * @param string  $extensionType  Extension type
50      * @param string  $name           Command name
51      * @param string  $class          Class name
52      * @param boolean $containerAware Container Aware command
53      * @param array   $services       Services array
54      */
55     public function generate($extension, $extensionType, $name, $class, $containerAware, $services)
56     {
57         $command_key = str_replace(':', '.', $name);
58
59         $extensionObject = $this->extensionManager->getDrupalExtension($extensionType, $extension);
60
61         $parameters = [
62             'extension' => $extension,
63             'extensionType' => $extensionType,
64             'name' => $name,
65             'class_name' => $class,
66             'container_aware' => $containerAware,
67             'command_key' => $command_key,
68             'services' => $services,
69             'tags' => ['name' => 'drupal.command'],
70             'class_path' => sprintf('Drupal\%s\Command\%s', $extension, $class),
71             'file_exists' => file_exists($extensionObject->getPath().'/console.services.yml'),
72         ];
73
74         $this->renderFile(
75             'module/src/Command/command.php.twig',
76             $extensionObject->getCommandDirectory().$class.'.php',
77             $parameters
78         );
79
80         $parameters['name'] = $extension.'.'.str_replace(':', '_', $name);
81
82         $this->renderFile(
83             'module/services.yml.twig',
84             $extensionObject->getPath() .'/console.services.yml',
85             $parameters,
86             FILE_APPEND
87         );
88
89         $this->renderFile(
90             'module/src/Command/console/translations/en/command.yml.twig',
91             $extensionObject->getPath().'/console/translations/en/'.$command_key.'.yml'
92         );
93     }
94 }