Move route config to app

diff --git a/app/Kernel.php b/app/Kernel.php
index 0e8e047..4425355 100644
--- a/app/Kernel.php
+++ b/app/Kernel.php
@@ -2,8 +2,16 @@

 namespace App;

+use App\Controller\BaseController;
+use Ardent\Undercurrent\Container\ContainerInterface;
 use Ardent\Undercurrent\Kernel\BaseKernel;

 class Kernel extends BaseKernel
 {
+    protected function dependencies(ContainerInterface $container): void
+    {
+        $this->addRoutes($container, [
+            BaseController::class,
+        ]);
+    }
 }
\ No newline at end of file
diff --git a/src/Http/RouterConfig.php b/src/Http/RouterConfig.php
index ad856d6..60e5af7 100644
--- a/src/Http/RouterConfig.php
+++ b/src/Http/RouterConfig.php
@@ -4,7 +4,6 @@ namespace Ardent\Undercurrent\Http;

 class RouterConfig
 {
-
     public function __construct(
         private readonly array $controllers = [],
     )
diff --git a/src/Kernel/BaseKernel.php b/src/Kernel/BaseKernel.php
index a6732f4..149aa8b 100644
--- a/src/Kernel/BaseKernel.php
+++ b/src/Kernel/BaseKernel.php
@@ -2,7 +2,6 @@

 namespace Ardent\Undercurrent\Kernel;

-use App\Controller\BaseController;
 use Ardent\Undercurrent\Container\ContainerInterface;
 use Ardent\Undercurrent\Container\GenericContainer;
 use Ardent\Undercurrent\Http\GenericRequest;
@@ -20,12 +19,9 @@ class BaseKernel
             ->alias(RouterInterface::class, GenericRouter::class)
             ->alias(ContainerInterface::class, GenericContainer::class)
             ->add(GenericContainer::class, fn($container) => $container)
-            ->add(GenericRouter::class)
-            ->add(BaseController::class);
+            ->add(GenericRouter::class);

-        $container->add(RouterConfig::class, fn() => new RouterConfig([
-            BaseController::class,
-        ]));
+        $this->dependencies($container);

         $this->render($container);
     }
@@ -41,4 +37,17 @@ class BaseKernel
         $router = $container->get(RouterInterface::class);
         echo $router->dispatch($request)->getBody();
     }
+
+    protected function addRoutes(ContainerInterface $container, array $routes): void
+    {
+        foreach ($routes as $route) {
+            $container->add($route);
+        }
+
+        $container->add(RouterConfig::class, fn() => new RouterConfig($routes));
+    }
+
+    protected function dependencies(ContainerInterface $container): void
+    {
+    }
 }
\ No newline at end of file
This commit is contained in:
Tim 2023-08-08 15:42:57 +02:00
parent a55d1c3c2e
commit 96e833fb4b
3 changed files with 23 additions and 7 deletions

View File

@ -2,8 +2,16 @@
namespace App; namespace App;
use App\Controller\BaseController;
use Ardent\Undercurrent\Container\ContainerInterface;
use Ardent\Undercurrent\Kernel\BaseKernel; use Ardent\Undercurrent\Kernel\BaseKernel;
class Kernel extends BaseKernel class Kernel extends BaseKernel
{ {
protected function dependencies(ContainerInterface $container): void
{
$this->addRoutes($container, [
BaseController::class,
]);
}
} }

View File

@ -4,7 +4,6 @@ namespace Ardent\Undercurrent\Http;
class RouterConfig class RouterConfig
{ {
public function __construct( public function __construct(
private readonly array $controllers = [], private readonly array $controllers = [],
) )

View File

@ -2,7 +2,6 @@
namespace Ardent\Undercurrent\Kernel; namespace Ardent\Undercurrent\Kernel;
use App\Controller\BaseController;
use Ardent\Undercurrent\Container\ContainerInterface; use Ardent\Undercurrent\Container\ContainerInterface;
use Ardent\Undercurrent\Container\GenericContainer; use Ardent\Undercurrent\Container\GenericContainer;
use Ardent\Undercurrent\Http\GenericRequest; use Ardent\Undercurrent\Http\GenericRequest;
@ -20,12 +19,9 @@ class BaseKernel
->alias(RouterInterface::class, GenericRouter::class) ->alias(RouterInterface::class, GenericRouter::class)
->alias(ContainerInterface::class, GenericContainer::class) ->alias(ContainerInterface::class, GenericContainer::class)
->add(GenericContainer::class, fn($container) => $container) ->add(GenericContainer::class, fn($container) => $container)
->add(GenericRouter::class) ->add(GenericRouter::class);
->add(BaseController::class);
$container->add(RouterConfig::class, fn() => new RouterConfig([ $this->dependencies($container);
BaseController::class,
]));
$this->render($container); $this->render($container);
} }
@ -41,4 +37,17 @@ class BaseKernel
$router = $container->get(RouterInterface::class); $router = $container->get(RouterInterface::class);
echo $router->dispatch($request)->getBody(); echo $router->dispatch($request)->getBody();
} }
protected function addRoutes(ContainerInterface $container, array $routes): void
{
foreach ($routes as $route) {
$container->add($route);
}
$container->add(RouterConfig::class, fn() => new RouterConfig($routes));
}
protected function dependencies(ContainerInterface $container): void
{
}
} }