settings dependency injection

This commit is contained in:
Dennis Eichhorn 2020-05-22 13:55:21 +02:00 committed by GitHub
parent b508eb11fd
commit 9b184d3df3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -14,8 +14,8 @@ declare(strict_types=1);
namespace phpOMS\Module; namespace phpOMS\Module;
use Model\CoreSettings;
use phpOMS\Application\ApplicationInfo; use phpOMS\Application\ApplicationInfo;
use phpOMS\Config\SettingsInterface
use phpOMS\DataStorage\Database\DatabasePool; use phpOMS\DataStorage\Database\DatabasePool;
use phpOMS\DataStorage\Database\Query\Builder; use phpOMS\DataStorage\Database\Query\Builder;
use phpOMS\DataStorage\Database\Schema\Builder as SchemaBuilder; use phpOMS\DataStorage\Database\Schema\Builder as SchemaBuilder;
@ -78,18 +78,19 @@ 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
* @param SettingsInterface $cfgHandler Settings/Configuration handler
* *
* @return void * @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public static function install(DatabasePool $dbPool, ModuleInfo $info) : void public static function install(DatabasePool $dbPool, ModuleInfo $info, SettingsInterface $cfgHandler) : void
{ {
self::createTables($dbPool, $info); self::createTables($dbPool, $info);
self::registerInDatabase($dbPool, $info); self::registerInDatabase($dbPool, $info);
self::installSettings($dbPool, $info); self::installSettings($dbPool, $info, $cfgHandler);
self::initRoutes($info); self::initRoutes($info);
self::initHooks($info); self::initHooks($info);
self::activate($dbPool, $info); self::activate($dbPool, $info);
@ -98,14 +99,15 @@ abstract class InstallerAbstract
/** /**
* Install module settings. * Install module settings.
* *
* @param DatabasePool $dbPool Database instance * @param DatabasePool $dbPool Database instance
* @param ModuleInfo $info Module info * @param ModuleInfo $info Module info
* @param SettingsInterface $cfgHandler Settings/Configuration handler
* *
* @return void * @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public static function installSettings(DatabasePool $dbPool, ModuleInfo $info) : void public static function installSettings(DatabasePool $dbPool, ModuleInfo $info, SettingsInterface $cfgHandler) : void
{ {
$path = \dirname($info->getPath()) . '/Admin/Install/Settings.install.php'; $path = \dirname($info->getPath()) . '/Admin/Install/Settings.install.php';
@ -116,8 +118,7 @@ abstract class InstallerAbstract
$settings = include $path; $settings = include $path;
foreach ($settings as $setting) { foreach ($settings as $setting) {
$settings = new CoreSettings($dbPool->get('insert')); $cfgHandlers->create($setting);
$settings->create($setting);
} }
} }