From 9b8985640c9f604db3ac267404a0ab1425117a58 Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 15 Aug 2023 02:16:12 +0200 Subject: [PATCH] Add appConfig to container diff --git a/public/index.php b/public/index.php index 78fef51..e15604b 100644 --- a/public/index.php +++ b/public/index.php @@ -8,8 +8,7 @@ error_reporting(E_ALL); use App\Kernel; -require_once dirname(__DIR__).'/vendor/autoload.php'; +require_once dirname(__DIR__) . '/vendor/autoload.php'; -$kernel = new Kernel(); - -$kernel(); \ No newline at end of file +$kernel = new Kernel(__DIR__ . '/../app'); +$kernel->run(); \ No newline at end of file diff --git a/src/AppConfig.php b/src/AppConfig.php new file mode 100644 index 0000000..bcf0ee6 --- /dev/null +++ b/src/AppConfig.php @@ -0,0 +1,17 @@ +rootPath; + } +} \ No newline at end of file diff --git a/src/Kernel/BaseKernel.php b/src/Kernel/BaseKernel.php index 60164d8..c27f49a 100644 --- a/src/Kernel/BaseKernel.php +++ b/src/Kernel/BaseKernel.php @@ -2,6 +2,7 @@ namespace Ardent\Undercurrent\Kernel; +use Ardent\Undercurrent\AppConfig; use Ardent\Undercurrent\Container\ContainerInterface; use Ardent\Undercurrent\Container\GenericContainer; use Ardent\Undercurrent\Http\GenericRequest; @@ -13,18 +14,26 @@ use Ardent\Undercurrent\Http\RouterInterface; use Ardent\Undercurrent\Http\StatusEnum; use Ardent\Undercurrent\Logger\LogContainer; use Ardent\Undercurrent\Logger\LoggerInterface; -use Exception; class BaseKernel { - public function __invoke(): void + public function __construct( + private readonly string $rootDirectory, + ) { + } + + public function run(): void + { + $appConfig = new AppConfig($this->rootDirectory); + $container = (new GenericContainer()); $container ->alias(RouterInterface::class, GenericRouter::class) ->alias(ContainerInterface::class, GenericContainer::class) ->alias(LoggerInterface::class, LogContainer::class) ->add(GenericContainer::class, fn($container) => $container) + ->add(AppConfig::class, fn() => $appConfig) ->add(GenericRouter::class) ->add(LogContainer::class); --- public/index.php | 7 +++---- src/AppConfig.php | 17 +++++++++++++++++ src/Kernel/BaseKernel.php | 13 +++++++++++-- 3 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 src/AppConfig.php diff --git a/public/index.php b/public/index.php index 78fef51..e15604b 100644 --- a/public/index.php +++ b/public/index.php @@ -8,8 +8,7 @@ error_reporting(E_ALL); use App\Kernel; -require_once dirname(__DIR__).'/vendor/autoload.php'; +require_once dirname(__DIR__) . '/vendor/autoload.php'; -$kernel = new Kernel(); - -$kernel(); \ No newline at end of file +$kernel = new Kernel(__DIR__ . '/../app'); +$kernel->run(); \ No newline at end of file diff --git a/src/AppConfig.php b/src/AppConfig.php new file mode 100644 index 0000000..bcf0ee6 --- /dev/null +++ b/src/AppConfig.php @@ -0,0 +1,17 @@ +rootPath; + } +} \ No newline at end of file diff --git a/src/Kernel/BaseKernel.php b/src/Kernel/BaseKernel.php index 60164d8..c27f49a 100644 --- a/src/Kernel/BaseKernel.php +++ b/src/Kernel/BaseKernel.php @@ -2,6 +2,7 @@ namespace Ardent\Undercurrent\Kernel; +use Ardent\Undercurrent\AppConfig; use Ardent\Undercurrent\Container\ContainerInterface; use Ardent\Undercurrent\Container\GenericContainer; use Ardent\Undercurrent\Http\GenericRequest; @@ -13,18 +14,26 @@ use Ardent\Undercurrent\Http\RouterInterface; use Ardent\Undercurrent\Http\StatusEnum; use Ardent\Undercurrent\Logger\LogContainer; use Ardent\Undercurrent\Logger\LoggerInterface; -use Exception; class BaseKernel { - public function __invoke(): void + public function __construct( + private readonly string $rootDirectory, + ) { + } + + public function run(): void + { + $appConfig = new AppConfig($this->rootDirectory); + $container = (new GenericContainer()); $container ->alias(RouterInterface::class, GenericRouter::class) ->alias(ContainerInterface::class, GenericContainer::class) ->alias(LoggerInterface::class, LogContainer::class) ->add(GenericContainer::class, fn($container) => $container) + ->add(AppConfig::class, fn() => $appConfig) ->add(GenericRouter::class) ->add(LogContainer::class);