Support customizing the default (base) class and install class of a module

This commit is contained in:
Kijin Sung 2023-08-11 22:09:26 +09:00
parent 7502b7308b
commit 3241354872
3 changed files with 23 additions and 4 deletions

View file

@ -1432,7 +1432,7 @@ class ModuleModel extends Module
* @param string $module_name
* @return ModuleObject|null
*/
public static function getModuleBaseClass(string $module_name, ?object $module_action_info = null)
public static function getModuleDefaultClass(string $module_name, ?object $module_action_info = null)
{
if (!$module_action_info)
{
@ -1448,6 +1448,12 @@ class ModuleModel extends Module
$namespace = 'Rhymix\\Modules\\' . ucfirst($module_name);
}
if (isset($module_action_info->classes['default']))
{
$class_name = $namespace . '\\' . $module_action_info->classes['default'];
return class_exists($class_name) ? $class_name::getInstance() : null;
}
$class_name = $namespace . '\\Base';
if (class_exists($class_name))
{
@ -1490,6 +1496,12 @@ class ModuleModel extends Module
$namespace = 'Rhymix\\Modules\\' . ucfirst($module_name);
}
if (isset($module_action_info->classes['install']))
{
$class_name = $namespace . '\\' . $module_action_info->classes['install'];
return class_exists($class_name) ? $class_name::getInstance() : null;
}
$class_name = $namespace . '\\Install';
if (class_exists($class_name))
{