autowire(Lean\Routing::class), RouteFetcher::class => function($c) { $fetcher = new RouteFetcher(null, [], null, $c->get('routes.caching')); $fetcher->setFolderList(array_map(function($item) { return $item; }, $c->get(Lean\Lean::class)->getRoutable())); return $fetcher; }, Breadcrumb::class => function($c) { $breadcrumb = new Breadcrumb(null, [], null, $c->get('breadcrumbs.caching')); $breadcrumb->setFolderList(array_map(function($item) { return $item; }, $c->get(Lean\Lean::class)->getRoutable())); return $breadcrumb; }, ApplicationStrategy::class => function($c) { return new class($c->get(Picea\Picea::class)) extends ApplicationStrategy { public Picea\Picea $picea; public function __construct(Picea\Picea $picea) { $this->picea = $picea; } public function getNotFoundDecorator(NotFoundException $exception): MiddlewareInterface { return new class($this->picea) implements MiddlewareInterface { protected Picea\Picea $picea; public function __construct(Picea\Picea $picea) { $this->picea = $picea; } public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { return new Zend\Diactoros\Response\HtmlResponse($this->picea->renderHtml("lean/error/404", [], $this), 404); } }; } }; }, 'routes.middlewares' => [ "dump", "errorHandler", SessionMiddleware::class, CronardMiddleware::class, HttpBasicAuthentication::class ], 'routes.list' => function($c) { return function (ContainerInterface $container) { $router = $container->get(Router::class); foreach($container->get('routes.middlewares') as $i => $middleware) { if ( $container->has($middleware) ) { $router->middleware($container->get($middleware)); } } $routing = $container->get(Lean\Routing::class); $routing->registerRoute($container, getenv('URL_BASE')); return $router; }; }, ];