5 * Contains Drupal\Console\Generator\FormGenerator.
8 namespace Drupal\Console\Generator;
10 use Drupal\Console\Core\Generator\Generator;
11 use Drupal\Console\Extension\Manager;
12 use Drupal\Console\Core\Utils\StringConverter;
14 class FormGenerator extends Generator
19 protected $extensionManager;
22 * @var StringConverter
24 protected $stringConverter;
27 * AuthenticationProviderGenerator constructor.
29 * @param Manager $extensionManager
30 * @param StringConverter $stringConverter
32 public function __construct(
33 Manager $extensionManager,
34 StringConverter $stringConverter
36 $this->extensionManager = $extensionManager;
37 $this->stringConverter = $stringConverter;
43 public function generate(array $parameters)
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'];
51 $moduleInstance = $this->extensionManager->getModule($module);
52 $moduleDir = $moduleInstance->getPath();
53 $modulePath = $moduleDir . '/' . $module;
55 $class_name_short = strtolower(
56 $this->stringConverter->removeSuffix($class_name)
59 $parameters = array_merge($parameters, [
60 'class_name_short' => $class_name_short
63 if ($form_type == 'ConfigFormBase') {
64 $template = 'module/src/Form/form-config.php.twig';
65 $parameters['config_form'] = true;
67 $template = 'module/src/Form/form.php.twig';
68 $parameters['config_form'] = false;
72 'module/routing-form.yml.twig',
73 $modulePath . '.routing.yml',
80 $moduleInstance->getFormPath() . '/' . $class_name . '.php',
84 // Render defaults YML file.
85 if ($config_file == true) {
87 'module/config/install/field.default.yml.twig',
88 $moduleDir . '/config/install/' . $module . '.' . $class_name_short . '.yml',
93 if ($menu_link_gen == true) {
95 'module/links.menu.yml.twig',
96 $modulePath . '.links.menu.yml',