<?php declare(strict_types=1); use Aura\Html\HelperLocatorFactory; use Aura\Session\SessionFactory; use Aviat\Ion\Config; use Aviat\Ion\Di\Container; use Laminas\Diactoros\{Response, ServerRequestFactory}; // ----------------------------------------------------------------------------- // Setup DI container // ----------------------------------------------------------------------------- return static function (array $config_array = []) { $container = new Container(); $container->set('config', static fn () => new Config([])); $container->setInstance('config', new Config($config_array)); $container->set('request', static function () { return ServerRequestFactory::fromGlobals( $GLOBALS['_SERVER'], $_GET, $_POST, $_COOKIE, $_FILES ); }); $container->set('response', static fn () => new Response()); // Create session Object $container->set('session', static fn () => (new SessionFactory())->newInstance($_COOKIE)); // Create Html helper Object $container->set('html-helper', static fn () => (new HelperLocatorFactory())->newInstance()); $container->set('component-helper', static fn () => (new HelperLocatorFactory())->newInstance()); return $container; };