Compare commits

...

1 Commits

Author SHA1 Message Date
Lexi / Zoe 60066746ff
[WIP] 2021-09-24 20:45:36 +02:00
5 changed files with 67 additions and 4 deletions

View File

@ -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);

View File

@ -0,0 +1,23 @@
<?php
declare(strict_types=1);
namespace MailAccountAdmin\Config\Loaders;
use MailAccountAdmin\Config\AppConfig;
class AutoConfigLoader implements ConfigLoaderInterface
{
private ConfigLoaderInterface $configLoader;
public function __construct()
{
// TODO determine configloader
// (first check if yml file exists, fallback to env?)
$this->configLoader = new EnvConfigLoader();
}
public function loadConfig(): AppConfig
{
return $this->configLoader->loadConfig();
}
}

View File

@ -0,0 +1,11 @@
<?php
declare(strict_types=1);
namespace MailAccountAdmin\Config\Loaders;
use MailAccountAdmin\Config\AppConfig;
interface ConfigLoaderInterface
{
public function loadConfig(): AppConfig;
}

View File

@ -5,9 +5,9 @@ namespace MailAccountAdmin\Config\Loaders;
use MailAccountAdmin\Config\AppConfig;
class EnvConfigLoader
class EnvConfigLoader implements ConfigLoaderInterface
{
public static function loadFromEnv(): AppConfig
public function loadConfig(): AppConfig
{
return AppConfig::createFromArray([
// App settings

View File

@ -0,0 +1,25 @@
<?php
declare(strict_types=1);
namespace MailAccountAdmin\Config\Loaders;
use MailAccountAdmin\Config\AppConfig;
class YamlConfigLoader implements ConfigLoaderInterface
{
private string $filePath;
public function __construct(string $filePath)
{
$this->filePath = $filePath;
}
public function loadConfig(): AppConfig
{
// TODO implement
return AppConfig::createFromArray([
// TODO
]);
}
}