2023-07-28 16:45:32 +02:00
|
|
|
<?php
|
|
|
|
|
2023-08-07 17:50:34 +02:00
|
|
|
ini_set('error_prepend_string', '<pre style="white-space: pre-wrap;">');
|
|
|
|
ini_set('error_append_string', '</pre>');
|
|
|
|
ini_set('display_errors', 1);
|
|
|
|
ini_set('display_startup_errors', 1);
|
|
|
|
error_reporting(E_ALL);
|
|
|
|
|
2023-07-28 16:45:32 +02:00
|
|
|
use App\Kernel;
|
2023-08-16 14:28:06 +02:00
|
|
|
use Ardent\Undercurrent\Config\AppConfig;
|
2023-08-16 16:04:35 +02:00
|
|
|
use Ardent\Undercurrent\Http\Renderer;
|
2023-07-28 16:45:32 +02:00
|
|
|
|
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 @@
+<?php
+
+namespace Ardent\Undercurrent;
+
+class AppConfig
+{
+ public function __construct(
+ private readonly string $rootPath,
+ )
+ {
+ }
+
+ public function getRootPath(): string
+ {
+ return $this->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);
2023-08-15 02:16:12 +02:00
|
|
|
require_once dirname(__DIR__) . '/vendor/autoload.php';
|
2023-07-28 16:45:32 +02:00
|
|
|
|
2023-08-16 14:28:06 +02:00
|
|
|
$kernel = new Kernel(new AppConfig(__DIR__ . '/../app'));
|
|
|
|
$container = $kernel->setup();
|
|
|
|
|
|
|
|
$renderer = new Renderer($container);
|
|
|
|
$renderer->render();
|