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'; require_once __DIR__ . '/../vendor/autoload.php';
use MailAccountAdmin\Config\Loaders\EnvConfigLoader; use MailAccountAdmin\Config\Loaders\AutoConfigLoader;
use MailAccountAdmin\Dependencies; use MailAccountAdmin\Dependencies;
use MailAccountAdmin\Middlewares; use MailAccountAdmin\Middlewares;
use MailAccountAdmin\Routes; use MailAccountAdmin\Routes;
@ -11,7 +11,11 @@ use Slim\Factory\AppFactory;
session_start(); 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); $container = Dependencies::createContainer($config);
$app = AppFactory::createFromContainer($container); $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; use MailAccountAdmin\Config\AppConfig;
class EnvConfigLoader class EnvConfigLoader implements ConfigLoaderInterface
{ {
public static function loadFromEnv(): AppConfig public function loadConfig(): AppConfig
{ {
return AppConfig::createFromArray([ return AppConfig::createFromArray([
// App settings // 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
]);
}
}