mirror of
https://github.com/Karaka-Management/phpOMS.git
synced 2026-02-11 22:38:42 +00:00
create settings installer
This commit is contained in:
parent
d32c044b2e
commit
660354d8f4
|
|
@ -22,6 +22,8 @@ use phpOMS\System\File\Local\File;
|
||||||
use phpOMS\System\File\PathException;
|
use phpOMS\System\File\PathException;
|
||||||
use phpOMS\System\File\PermissionException;
|
use phpOMS\System\File\PermissionException;
|
||||||
use phpOMS\Utils\Parser\Php\ArrayParser;
|
use phpOMS\Utils\Parser\Php\ArrayParser;
|
||||||
|
use phpOMS\Application\ApplicationInfo;
|
||||||
|
use Model\CoreSettings;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Installer abstract class.
|
* Installer abstract class.
|
||||||
|
|
@ -37,7 +39,7 @@ abstract class InstallerAbstract
|
||||||
* Register module in database.
|
* Register module in database.
|
||||||
*
|
*
|
||||||
* @param DatabasePool $dbPool Database instance
|
* @param DatabasePool $dbPool Database instance
|
||||||
* @param ModuleInfo $info Module info
|
* @param ModuleInfo $info Module info
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*
|
*
|
||||||
|
|
@ -79,7 +81,7 @@ abstract class InstallerAbstract
|
||||||
* Install module.
|
* Install module.
|
||||||
*
|
*
|
||||||
* @param DatabasePool $dbPool Database instance
|
* @param DatabasePool $dbPool Database instance
|
||||||
* @param ModuleInfo $info Module info
|
* @param ModuleInfo $info Module info
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*
|
*
|
||||||
|
|
@ -89,16 +91,43 @@ abstract class InstallerAbstract
|
||||||
{
|
{
|
||||||
self::createTables($dbPool, $info);
|
self::createTables($dbPool, $info);
|
||||||
self::registerInDatabase($dbPool, $info);
|
self::registerInDatabase($dbPool, $info);
|
||||||
|
self::installSettings($dbPool, $info);
|
||||||
self::initRoutes($info);
|
self::initRoutes($info);
|
||||||
self::initHooks($info);
|
self::initHooks($info);
|
||||||
self::activate($dbPool, $info);
|
self::activate($dbPool, $info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Install module settings.
|
||||||
|
*
|
||||||
|
* @param DatabasePool $dbPool Database instance
|
||||||
|
* @param ModuleInfo $info Module info
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public static function installSettings(DatabasePool $dbPool, ModuleInfo $info) : void
|
||||||
|
{
|
||||||
|
$path = \dirname($info->getPath()) . '/Admin/Install/Settings.install.php';
|
||||||
|
|
||||||
|
if (!\file_exists($path)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$settings = include $path;
|
||||||
|
|
||||||
|
foreach ($settings as $setting) {
|
||||||
|
$settings = new CoreSettings($dbPool->get('insert'));
|
||||||
|
$settings->create($setting);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create tables for module.
|
* Create tables for module.
|
||||||
*
|
*
|
||||||
* @param DatabasePool $dbPool Database instance
|
* @param DatabasePool $dbPool Database instance
|
||||||
* @param ModuleInfo $info Module info
|
* @param ModuleInfo $info Module info
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*
|
*
|
||||||
|
|
@ -127,7 +156,7 @@ abstract class InstallerAbstract
|
||||||
* Activate after install.
|
* Activate after install.
|
||||||
*
|
*
|
||||||
* @param DatabasePool $dbPool Database instance
|
* @param DatabasePool $dbPool Database instance
|
||||||
* @param ModuleInfo $info Module info
|
* @param ModuleInfo $info Module info
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*
|
*
|
||||||
|
|
@ -143,22 +172,24 @@ abstract class InstallerAbstract
|
||||||
/**
|
/**
|
||||||
* Re-init module.
|
* Re-init module.
|
||||||
*
|
*
|
||||||
* @param ModuleInfo $info Module info
|
* @param ModuleInfo $info Module info
|
||||||
|
* @param null|ApplicationInfo $appInfo Application info
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
public static function reInit(ModuleInfo $info) : void
|
public static function reInit(ModuleInfo $info, ApplicationInfo $appInfo = null) : void
|
||||||
{
|
{
|
||||||
self::initRoutes($info);
|
self::initRoutes($info, $appInfo);
|
||||||
self::initHooks($info);
|
self::initHooks($info, $appInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Init routes.
|
* Init routes.
|
||||||
*
|
*
|
||||||
* @param ModuleInfo $info Module info
|
* @param ModuleInfo $info Module info
|
||||||
|
* @param null|ApplicationInfo $appInfo Application info
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*
|
*
|
||||||
|
|
@ -166,7 +197,7 @@ abstract class InstallerAbstract
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
private static function initRoutes(ModuleInfo $info) : void
|
private static function initRoutes(ModuleInfo $info, ApplicationInfo $appInfo = null) : void
|
||||||
{
|
{
|
||||||
$directories = new Directory(\dirname($info->getPath()) . '/Admin/Routes');
|
$directories = new Directory(\dirname($info->getPath()) . '/Admin/Routes');
|
||||||
|
|
||||||
|
|
@ -224,7 +255,8 @@ abstract class InstallerAbstract
|
||||||
/**
|
/**
|
||||||
* Init hooks.
|
* Init hooks.
|
||||||
*
|
*
|
||||||
* @param ModuleInfo $info Module info
|
* @param ModuleInfo $info Module info
|
||||||
|
* @param null|ApplicationInfo $appInfo Application info
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*
|
*
|
||||||
|
|
@ -232,7 +264,7 @@ abstract class InstallerAbstract
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
private static function initHooks(ModuleInfo $info) : void
|
private static function initHooks(ModuleInfo $info, ApplicationInfo $appInfo = null) : void
|
||||||
{
|
{
|
||||||
$directories = new Directory(\dirname($info->getPath()) . '/Admin/Hooks');
|
$directories = new Directory(\dirname($info->getPath()) . '/Admin/Hooks');
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user