78 lines
2.2 KiB
PHP
78 lines
2.2 KiB
PHP
<?php
|
|
|
|
use function DI\autowire, DI\create, DI\get, DI\add;
|
|
|
|
use League\Route\Strategy\ApplicationStrategy,
|
|
League\Route\Router;
|
|
|
|
use Psr\Container\ContainerInterface;
|
|
|
|
use Cronard\CronardMiddleware;
|
|
|
|
use Notes\Route\RouteFetcher;
|
|
|
|
use Notes\Breadcrumb\Breadcrumb;
|
|
|
|
use Storage\SessionMiddleware;
|
|
|
|
use Ulmus\User\Middleware\{
|
|
HeaderAuthenticationMiddleware,
|
|
PostRequestAuthenticationMiddleware
|
|
};
|
|
|
|
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,
|
|
],
|
|
|
|
'app.middlewares' => add([
|
|
# HeaderAuthenticationMiddleware::class,
|
|
# PostRequestAuthenticationMiddleware::class,
|
|
]),
|
|
|
|
Lean\Routing\RouteDefinitionInterface::class => function($c) {
|
|
return function (ContainerInterface $container) {
|
|
$router = $container->get(Router::class);
|
|
|
|
foreach([ 'routes.middlewares', 'app.middlewares' ] as $key) {
|
|
if ( $container->has($key) ) {
|
|
foreach ($container->get($key) 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;
|
|
};
|
|
},
|
|
];
|