collectVars($input, $output, $questions); if ($vars['dependencies']) { $vars['dependencies'] = array_map('trim', explode(',', strtolower($vars['dependencies']))); } if ($vars['entity_base_path'][0] != '/') { $vars['entity_base_path'] = '/' . $vars['entity_base_path']; } if (($vars['fieldable_no_bundle'] = $vars['fieldable'] && !$vars['bundle'])) { $vars['configure'] = 'entity.' . $vars['entity_type_id'] . '.settings'; } elseif ($vars['bundle']) { $vars['configure'] = 'entity.' . $vars['entity_type_id'] . '_type.collection'; } $vars['class_prefix'] = Utils::camelize($vars['entity_type_label']); $templates = [ 'model.info.yml.twig', 'model.links.action.yml.twig', 'model.links.menu.yml.twig', 'model.links.task.yml.twig', 'model.permissions.yml.twig', 'src/Entity/Example.php.twig', 'src/ExampleInterface.php.twig', 'src/ExampleListBuilder.php.twig', 'src/Form/ExampleForm.php.twig', ]; if ($vars['fieldable_no_bundle']) { $templates[] = 'model.routing.yml.twig'; $templates[] = 'src/Form/ExampleSettingsForm.php.twig'; } if ($vars['template']) { $templates[] = 'templates/model-example.html.twig.twig'; $templates[] = 'model.module.twig'; } else { $templates[] = 'src/ExampleViewBuilder.php.twig'; } if ($vars['access_controller']) { $templates[] = 'src/ExampleAccessControlHandler.php.twig'; } if ($vars['rest_configuration']) { $templates[] = 'config/optional/rest.resource.entity.example.yml.twig'; } if ($vars['bundle']) { $templates[] = 'config/optional/views.view.example.yml.twig'; $templates[] = 'config/schema/model.entity_type.schema.yml.twig'; $templates[] = 'src/ExampleTypeListBuilder.php.twig'; $templates[] = 'src/Entity/ExampleType.php.twig'; $templates[] = 'src/Form/ExampleTypeForm.php.twig'; } $templates_path = 'd8/module/content-entity/'; $vars['template_name'] = str_replace('_', '-', $vars['entity_type_id']) . '.html.twig'; $path_placeholders = [ 'model-example.html.twig', 'model', 'Example', 'rest.resource.entity.example', 'views.view.example', ]; $path_replacements = [ $vars['template_name'], $vars['machine_name'], $vars['class_prefix'], 'rest.resource.entity.' . $vars['entity_type_id'], 'views.view.' . $vars['entity_type_id'], ]; foreach ($templates as $template) { $path = $vars['machine_name'] . '/' . str_replace($path_placeholders, $path_replacements, $template); $this->addFile() ->path(preg_replace('#\.twig$#', '', $path)) ->template($templates_path . $template); } } }