Security update for Core, with self-updated composer
[yaffs-website] / vendor / drupal / console / src / Generator / FormGenerator.php
1 <?php
2
3 /**
4  * @file
5  * Contains Drupal\Console\Generator\FormGenerator.
6  */
7
8 namespace Drupal\Console\Generator;
9
10 use Drupal\Console\Core\Generator\Generator;
11 use Drupal\Console\Extension\Manager;
12 use Drupal\Console\Core\Utils\StringConverter;
13
14 class FormGenerator extends Generator
15 {
16     /**
17      * @var Manager
18      */
19     protected $extensionManager;
20
21     /**
22      * @var StringConverter
23      */
24     protected $stringConverter;
25
26     /**
27      * AuthenticationProviderGenerator constructor.
28      *
29      * @param Manager         $extensionManager
30      * @param StringConverter $stringConverter
31      */
32     public function __construct(
33         Manager $extensionManager,
34         StringConverter $stringConverter
35     ) {
36         $this->extensionManager = $extensionManager;
37         $this->stringConverter = $stringConverter;
38     }
39
40     /**
41      * {@inheritdoc}
42      */
43     public function generate(array $parameters)
44     {
45         $class_name = $parameters['class_name'];
46         $form_type = $parameters['form_type'];
47         $module = $parameters['module_name'];
48         $config_file = $parameters['config_file'];
49         $menu_link_gen = $parameters['menu_link_gen'];
50
51         $moduleInstance = $this->extensionManager->getModule($module);
52         $moduleDir = $moduleInstance->getPath();
53         $modulePath = $moduleDir . '/' . $module;
54
55         $class_name_short = strtolower(
56             $this->stringConverter->removeSuffix($class_name)
57         );
58
59         $parameters = array_merge($parameters, [
60           'class_name_short' => $class_name_short
61         ]);
62
63         if ($form_type == 'ConfigFormBase') {
64             $template = 'module/src/Form/form-config.php.twig';
65             $parameters['config_form'] = true;
66         } else {
67             $template = 'module/src/Form/form.php.twig';
68             $parameters['config_form'] = false;
69         }
70
71         $this->renderFile(
72             'module/routing-form.yml.twig',
73           $modulePath . '.routing.yml',
74             $parameters,
75             FILE_APPEND
76         );
77
78         $this->renderFile(
79             $template,
80             $moduleInstance->getFormPath() . '/' . $class_name . '.php',
81             $parameters
82         );
83         
84         // Render defaults YML file.
85         if ($config_file == true) {
86             $this->renderFile(
87                 'module/config/install/field.default.yml.twig',
88               $moduleDir . '/config/install/' . $module . '.' . $class_name_short . '.yml',
89                 $parameters
90             );
91         }
92
93         if ($menu_link_gen == true) {
94             $this->renderFile(
95                 'module/links.menu.yml.twig',
96               $modulePath . '.links.menu.yml',
97                 $parameters,
98                 FILE_APPEND
99             );
100         }
101     }
102 }