/**
- * Generator Entity.
- *
- * @param string $module Module name
- * @param string $entity_name Entity machine name
- * @param string $entity_class Entity class name
- * @param string $label Entity label
- * @param string $base_path Base path
- * @param string $bundle_of Entity machine name of the content entity this config entity acts as a bundle for.
+ * {@inheritdoc}
*/
- public function generate($module, $entity_name, $entity_class, $label, $base_path, $bundle_of = null)
+ public function generate(array $parameters)
{
- $parameters = [
- 'module' => $module,
- 'entity_name' => $entity_name,
- 'entity_class' => $entity_class,
- 'label' => $label,
- 'bundle_of' => $bundle_of,
- 'base_path' => $base_path,
- ];
+ $module = $parameters['module'];
+ $entity_name = $parameters['entity_name'];
+ $entity_class = $parameters['entity_class'];
+
+ $moduleInstance = $this->extensionManager->getModule($module);
+ $moduleDir = $moduleInstance->getPath();
+ $modulePath = $moduleDir . '/' . $module;
+ $moduleSourcePath = $moduleInstance->getSourcePath() . '/' . $entity_class;
+ $moduleFormPath = $moduleInstance->getFormPath() . '/' . $entity_class;
+ $moduleEntityPath = $moduleInstance->getEntityPath() . '/' . $entity_class;
$this->renderFile(
'module/config/schema/entity.schema.yml.twig',
- $this->extensionManager->getModule($module)->getPath().'/config/schema/'.$entity_name.'.schema.yml',
+ $moduleDir . '/config/schema/' . $entity_name . '.schema.yml',
$parameters
);
$this->renderFile(
'module/links.menu-entity-config.yml.twig',
- $this->extensionManager->getModule($module)->getPath().'/'.$module.'.links.menu.yml',
+ $modulePath . '.links.menu.yml',
$parameters,
FILE_APPEND
);
$this->renderFile(
'module/links.action-entity.yml.twig',
- $this->extensionManager->getModule($module)->getPath().'/'.$module.'.links.action.yml',
+ $modulePath . '.links.action.yml',
$parameters,
FILE_APPEND
);
$this->renderFile(
'module/src/Entity/interface-entity.php.twig',
- $this->extensionManager->getModule($module)->getEntityPath().'/'.$entity_class.'Interface.php',
+ $moduleEntityPath . 'Interface.php',
$parameters
);
$this->renderFile(
'module/src/Entity/entity.php.twig',
- $this->extensionManager->getModule($module)->getEntityPath().'/'.$entity_class.'.php',
+ $moduleEntityPath . '.php',
$parameters
);
$this->renderFile(
'module/src/entity-route-provider.php.twig',
- $this->extensionManager->getModule($module)->getSourcePath().'/'.$entity_class.'HtmlRouteProvider.php',
+ $moduleSourcePath . 'HtmlRouteProvider.php',
$parameters
);
$this->renderFile(
'module/src/Form/entity.php.twig',
- $this->extensionManager->getModule($module)->getFormPath().'/'.$entity_class.'Form.php',
+ $moduleFormPath . 'Form.php',
$parameters
);
$this->renderFile(
'module/src/Form/entity-delete.php.twig',
- $this->extensionManager->getModule($module)->getFormPath().'/'.$entity_class.'DeleteForm.php',
+ $moduleFormPath . 'DeleteForm.php',
$parameters
);
$this->renderFile(
'module/src/entity-listbuilder.php.twig',
- $this->extensionManager->getModule($module)->getSourcePath().'/'.$entity_class.'ListBuilder.php',
+ $moduleSourcePath . 'ListBuilder.php',
$parameters
);
}