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