<?php use function DI\autowire, DI\create, DI\get; use League\Route\Strategy\ApplicationStrategy, League\Route\Http\Exception\NotFoundException, League\Route\Router; use Psr\Http\Message\ResponseFactoryInterface, Psr\Container\ContainerInterface, Psr\Http\Message\ResponseInterface, Psr\Http\Message\ServerRequestInterface, Psr\Http\Server\MiddlewareInterface, Psr\Http\Server\RequestHandlerInterface, Psr\SimpleCache\CacheInterface; use TheBugs\JavascriptMiddleware; use Cronard\CronardMiddleware; use Tuupola\Middleware\HttpBasicAuthentication; use Notes\Route\RouteFetcher; use Notes\Breadcrumb\Breadcrumb; use Ulmus\User\Lib\Authenticate; use Storage\SessionMiddleware; return [ Lean\Routing::class => 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 => autowire(\Lean\ApplicationStrategy::class), 'routes.middlewares' => [ "dump", "errorHandler", SessionMiddleware::class, CronardMiddleware::class, Mcnd\Event\EventMiddleware::class, Mcnd\CLI\CliMiddleware::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; }; }, ];