From 7c4012c9fd9379e4fbe3f53eb9da554ff16e1962 Mon Sep 17 00:00:00 2001 From: Dave Smith-Hayes Date: Fri, 20 Jun 2025 13:14:51 +0000 Subject: [PATCH] don't over engineer the bootstrapping. --- app/src/Bootstrap.php | 38 +++++++++++++++-- .../Application/DefinitionInterface.php | 16 ------- .../Application/LoggerDefinition.php | 24 ----------- .../Application/SessionDefinition.php | 42 ------------------- 4 files changed, 35 insertions(+), 85 deletions(-) delete mode 100644 app/src/Infrastructure/Application/DefinitionInterface.php delete mode 100644 app/src/Infrastructure/Application/LoggerDefinition.php delete mode 100644 app/src/Infrastructure/Application/SessionDefinition.php diff --git a/app/src/Bootstrap.php b/app/src/Bootstrap.php index ec26019..254e932 100644 --- a/app/src/Bootstrap.php +++ b/app/src/Bootstrap.php @@ -33,6 +33,7 @@ use Slim\App; use Slim\Factory\AppFactory; use Slim\Psr7\Factory\ResponseFactory; use Slovocast\Infrastructure\Application\LoggerDefinition; +use Slovocast\Infrastructure\Application\ResponseFactoryDefinition; use Slovocast\Infrastructure\Application\SessionDefintion; use Slovocast\Middleware\SessionMiddleware; use Twig\Error\LoaderError; @@ -120,20 +121,51 @@ class Bootstrap protected static function initContainer(): Container { $containerBuilder = new ContainerBuilder(); - $config = self::initConfig(); + + $containerDefinitions = array_merge( + [ 'config' => $config ], + (new LoggerDefinition())->define(), + (new SessionDefintion())->define(), + (new ResponseFactoryDefinition())->define(), + ); + $containerBuilder->addDefinitions([ 'config' => $config, /** * Global logging */ - (new LoggerDefinition())->define(), + LoggerInterface::class => function (ContainerInterface $c) { + $logger = new Logger("default"); + $logger->pushHandler(new StreamHandler('php://stdout', Level::Info)); + return $logger; + }, /** * Session and Flash classes here */ - (new SessionDefintion())->define(), + SessionManagerInterface::class => function (ContainerInterface $container) { + return $container->get(SessionInterface::class); + }, + SessionInterface::class => function (ContainerInterface $container) { + $options = $container->get('config')->get('session'); + return new PhpSession($options); + }, + 'session' => function (ContainerInterface $container) { + return $container->get(SessionInterface::class); + }, + SessionMiddleware::class => function (ContainerInterface $container) { + return new SessionMiddleware( + $container->get(SessionManagerInterface::class), + $container->get(SessionInterface::class), + $container->get(LoggerInterface::class) + ); + }, + + UserSessionManagerInterface::class => function (ContainerInterface $container) { + return new UserSessionManager($container->get(SessionInterface::class)); + }, /** * Application DI diff --git a/app/src/Infrastructure/Application/DefinitionInterface.php b/app/src/Infrastructure/Application/DefinitionInterface.php deleted file mode 100644 index 5f6d07c..0000000 --- a/app/src/Infrastructure/Application/DefinitionInterface.php +++ /dev/null @@ -1,16 +0,0 @@ - The definition structure used for setting - * up a Container - */ - public function define(): array; -} diff --git a/app/src/Infrastructure/Application/LoggerDefinition.php b/app/src/Infrastructure/Application/LoggerDefinition.php deleted file mode 100644 index b7300b3..0000000 --- a/app/src/Infrastructure/Application/LoggerDefinition.php +++ /dev/null @@ -1,24 +0,0 @@ - function (ContainerInterface $c) { - $logger = new Logger("default"); - $logger->pushHandler(new StreamHandler('php://stdout', Level::Info)); - return $logger; - } - ]; - } -} diff --git a/app/src/Infrastructure/Application/SessionDefinition.php b/app/src/Infrastructure/Application/SessionDefinition.php deleted file mode 100644 index cdd6c73..0000000 --- a/app/src/Infrastructure/Application/SessionDefinition.php +++ /dev/null @@ -1,42 +0,0 @@ - function (ContainerInterface $container) { - return $container->get(SessionInterface::class); - }, - SessionInterface::class => function (ContainerInterface $container) { - $options = $container->get('config')->get('session'); - return new PhpSession($options); - }, - 'session' => function (ContainerInterface $container) { - return $container->get(SessionInterface::class); - }, - SessionMiddleware::class => function (ContainerInterface $container) { - return new SessionMiddleware( - $container->get(SessionManagerInterface::class), - $container->get(SessionInterface::class), - $container->get(LoggerInterface::class) - ); - }, - UserSessionManagerInterface::class => function (ContainerInterface $container) { - return new UserSessionManager($container->get(SessionInterface::class)); - }, - ]; - } -}