diff --git a/src/SessionMiddlewareFactory.php b/src/SessionMiddlewareFactory.php index dfa7e80..34548c0 100644 --- a/src/SessionMiddlewareFactory.php +++ b/src/SessionMiddlewareFactory.php @@ -17,9 +17,16 @@ class SessionMiddlewareFactory */ public function __invoke(ContainerInterface $container): SessionMiddleware { - /** @var ConfigInterface $configContainer */ - $configContainer = $container->get(ConfigInterface::class); - $config = (array) $configContainer->get('session', []); + if ($container->has(ConfigInterface::class)) { + /** @var ConfigInterface $configContainer */ + $configContainer = $container->get(ConfigInterface::class); + $config = (array) $configContainer->get('session', []); + } elseif ($container->has('config')) { + $configArray = (array) $container->get('config'); + $config = $configArray['session'] ?? []; + } else { + $config = []; + } $session = new SessionHandler( $container->get(PDO::class), diff --git a/tests/unit/SessionMiddlewareFactoryTest.php b/tests/unit/SessionMiddlewareFactoryTest.php index 0783a8e..1fec117 100644 --- a/tests/unit/SessionMiddlewareFactoryTest.php +++ b/tests/unit/SessionMiddlewareFactoryTest.php @@ -107,6 +107,10 @@ private function getContainer(array $options): ContainerInterface ->willReturn($options); $container = $this->createMock(ContainerInterface::class); + $container + ->method('has') + ->with(ConfigInterface::class) + ->willReturn(true); $container ->method('get') ->willReturnCallback(