Yaffs site version 1.1
[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      * @param  $module
42      * @param  $class_name
43      * @param  $services
44      * @param  $config_file
45      * @param  $inputs
46      * @param  $form_id
47      * @param  $form_type
48      * @param  $path
49      * @param  $menu_link_gen
50      * @param  $menu_link_title
51      * @param  $menu_parent
52      * @param  $menu_link_desc
53      */
54     public function generate($module, $class_name, $form_id, $form_type, $services, $config_file, $inputs, $path, $menu_link_gen, $menu_link_title, $menu_parent, $menu_link_desc)
55     {
56         $class_name_short = strtolower(
57             $this->stringConverter->removeSuffix($class_name)
58         );
59
60         $parameters = [
61           'class_name' => $class_name,
62           'services' => $services,
63           'config_file' => $config_file,
64           'inputs' => $inputs,
65           'module_name' => $module,
66           'form_id' => $form_id,
67           'path' => $path,
68           'route_name' => $class_name,
69           'menu_link_title' => $menu_link_title,
70           'menu_parent' => $menu_parent,
71           'menu_link_desc' => $menu_link_desc,
72           'class_name_short'  => $class_name_short
73         ];
74
75         if ($form_type == 'ConfigFormBase') {
76             $template = 'module/src/Form/form-config.php.twig';
77             $parameters['config_form'] = true;
78         } else {
79             $template = 'module/src/Form/form.php.twig';
80             $parameters['config_form'] = false;
81         }
82
83         $this->renderFile(
84             'module/routing-form.yml.twig',
85             $this->extensionManager->getModule($module)->getPath() .'/'.$module.'.routing.yml',
86             $parameters,
87             FILE_APPEND
88         );
89
90         $this->renderFile(
91             $template,
92             $this->extensionManager->getModule($module)->getFormPath() .'/'.$class_name.'.php',
93             $parameters
94         );
95         
96         // Render defaults YML file.
97         if ($config_file == true) {
98             $this->renderFile(
99                 'module/config/install/field.default.yml.twig',
100                 $this->extensionManager->getModule($module)->getPath() .'/config/install/'.$module.'.'.$class_name_short.'.yml',
101                 $parameters
102             );
103         }
104
105         if ($menu_link_gen == true) {
106             $this->renderFile(
107                 'module/links.menu.yml.twig',
108                 $this->extensionManager->getModule($module)->getPath() . '/' . $module . '.links.menu.yml',
109                 $parameters,
110                 FILE_APPEND
111             );
112         }
113     }
114 }