. */ use SP\Core\Context\Session; use SP\Core\Crypt\Csrf; use SP\Domain\Config\Ports\ConfigDataInterface; use SP\Domain\Core\Bootstrap\BootstrapInterface; use SP\Domain\Core\Bootstrap\ModuleInterface; use SP\Domain\Core\Context\Context; use SP\Domain\Core\Crypt\CsrfHandler; use SP\Domain\Html\Services\MinifyCss; use SP\Domain\Html\Services\MinifyJs; use SP\Modules\Web\Bootstrap; use SP\Modules\Web\Controllers\Resource\CssController; use SP\Modules\Web\Controllers\Resource\JsController; use SP\Modules\Web\Init; use function DI\autowire; use function DI\factory; const MODULE_PATH = __DIR__; const VIEW_PATH = MODULE_PATH . DIRECTORY_SEPARATOR . 'themes'; const PLUGINS_PATH = MODULE_PATH . DIRECTORY_SEPARATOR . 'plugins'; return [ BootstrapInterface::class => autowire(Bootstrap::class), ModuleInterface::class => autowire(Init::class), CssController::class => autowire( CssController::class )->constructorParameter('minify', autowire(MinifyCss::class)), JsController::class => autowire( JsController::class )->constructorParameter('minify', autowire(MinifyJs::class)), Context::class => factory( static function (ConfigDataInterface $configData, SessionHandlerInterface $sessionHandler) { if ($configData->isEncryptSession()) { return new Session($sessionHandler); } return new Session(); } ), CsrfHandler::class => autowire(Csrf::class), ];