Files
ui/common/Middleware/NotFound.php
2021-12-25 23:17:47 -03:00

28 lines
940 B
PHP

<?php
namespace Incoviba\UI\Common\Middleware;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\RequestHandlerInterface as Handler;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ResponseFactoryInterface as Factory;
use Slim\Exception\HttpNotFoundException;
use Slim\Views\Blade as View;
class NotFound {
protected Factory $factory;
protected View $view;
public function __construct(Factory $factory, View $view) {
$this->factory = $factory;
$this->view = $view;
}
public function __invoke(Request $request, Handler $handler): Response {
try {
return $handler->handle($request);
} catch (HttpNotFoundException $e) {
$page = $request->getUri()->getPath();
$response = $this->factory->createResponse(404);
return $this->view->render($response, '404', compact('page'));
}
}
}