From 60066746ffaac2f9a2a18d442dd45e39fb3276c9 Mon Sep 17 00:00:00 2001 From: binaryDiv Date: Fri, 24 Sep 2021 20:45:36 +0200 Subject: [PATCH] [WIP] --- public/index.php | 8 +++++-- src/Config/Loaders/AutoConfigLoader.php | 23 ++++++++++++++++++ src/Config/Loaders/ConfigLoaderInterface.php | 11 +++++++++ src/Config/Loaders/EnvConfigLoader.php | 4 ++-- src/Config/Loaders/YamlConfigLoader.php | 25 ++++++++++++++++++++ 5 files changed, 67 insertions(+), 4 deletions(-) create mode 100644 src/Config/Loaders/AutoConfigLoader.php create mode 100644 src/Config/Loaders/ConfigLoaderInterface.php create mode 100644 src/Config/Loaders/YamlConfigLoader.php diff --git a/public/index.php b/public/index.php index 10628de..0de28b3 100644 --- a/public/index.php +++ b/public/index.php @@ -3,7 +3,7 @@ declare(strict_types=1); require_once __DIR__ . '/../vendor/autoload.php'; -use MailAccountAdmin\Config\Loaders\EnvConfigLoader; +use MailAccountAdmin\Config\Loaders\AutoConfigLoader; use MailAccountAdmin\Dependencies; use MailAccountAdmin\Middlewares; use MailAccountAdmin\Routes; @@ -11,7 +11,11 @@ use Slim\Factory\AppFactory; session_start(); -$config = EnvConfigLoader::loadFromEnv(); +// Load application config (from environment or config file) +$configLoader = new AutoConfigLoader(); +$config = $configLoader->loadConfig(); + +// Create application $container = Dependencies::createContainer($config); $app = AppFactory::createFromContainer($container); diff --git a/src/Config/Loaders/AutoConfigLoader.php b/src/Config/Loaders/AutoConfigLoader.php new file mode 100644 index 0000000..4090b93 --- /dev/null +++ b/src/Config/Loaders/AutoConfigLoader.php @@ -0,0 +1,23 @@ +configLoader = new EnvConfigLoader(); + } + + public function loadConfig(): AppConfig + { + return $this->configLoader->loadConfig(); + } +} diff --git a/src/Config/Loaders/ConfigLoaderInterface.php b/src/Config/Loaders/ConfigLoaderInterface.php new file mode 100644 index 0000000..ed8ebe6 --- /dev/null +++ b/src/Config/Loaders/ConfigLoaderInterface.php @@ -0,0 +1,11 @@ +filePath = $filePath; + } + + public function loadConfig(): AppConfig + { + // TODO implement + + return AppConfig::createFromArray([ + // TODO + ]); + } +}