2020-12-07 14:11:29 +00:00
|
|
|
<?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;
|
|
|
|
|
|
|
|
use TheBugs\JavascriptMiddleware;
|
|
|
|
|
|
|
|
use Cronard\CronardMiddleware;
|
|
|
|
|
|
|
|
use Tuupola\Middleware\HttpBasicAuthentication;
|
|
|
|
|
|
|
|
use Notes\Route\RouteFetcher;
|
|
|
|
|
2021-01-22 14:38:17 +00:00
|
|
|
use Ulmus\User\Lib\Authenticate;
|
|
|
|
|
2020-12-07 14:11:29 +00:00
|
|
|
use Storage\SessionMiddleware;
|
|
|
|
|
|
|
|
return [
|
|
|
|
Lean\Routing::class => autowire(Lean\Routing::class),
|
|
|
|
|
|
|
|
RouteFetcher::class => function($c) {
|
|
|
|
$fetcher = new RouteFetcher();
|
|
|
|
|
|
|
|
$fetcher->setFolderList(array_map(function($item) {
|
2021-01-22 14:38:17 +00:00
|
|
|
return $item;
|
2020-12-07 14:11:29 +00:00
|
|
|
}, $c->get(Lean\Lean::class)->getRoutable()));
|
|
|
|
|
|
|
|
return $fetcher;
|
|
|
|
},
|
|
|
|
|
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|
},
|
|
|
|
|
2021-01-22 14:38:17 +00:00
|
|
|
'routes.middlewares' => [ "errorHandler", "dump", SessionMiddleware::class, CronardMiddleware::class, HttpBasicAuthentication::class, JavascriptMiddleware::class ],
|
|
|
|
|
2020-12-07 14:11:29 +00:00
|
|
|
'routes.list' => function($c) {
|
|
|
|
return function (ContainerInterface $container) {
|
|
|
|
$router = $container->get(Router::class);
|
|
|
|
|
2021-01-22 14:38:17 +00:00
|
|
|
foreach($container->get('routes.middlewares') as $middleware) {
|
2020-12-07 14:11:29 +00:00
|
|
|
if ( $container->has($middleware) ) {
|
|
|
|
$router->middleware($container->get($middleware));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$routing = $container->get(Lean\Routing::class);
|
|
|
|
|
|
|
|
$routing->registerRoute($container, getenv('URL_BASE'));
|
|
|
|
|
|
|
|
return $router;
|
|
|
|
};
|
|
|
|
},
|
|
|
|
];
|