generated from yiisoft/package-template
-
-
Notifications
You must be signed in to change notification settings - Fork 65
Expand file tree
/
Copy pathNotFoundHandler.php
More file actions
31 lines (26 loc) · 957 Bytes
/
NotFoundHandler.php
File metadata and controls
31 lines (26 loc) · 957 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
declare(strict_types=1);
namespace App\Handler;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
use Yiisoft\Http\Status;
use Yiisoft\Router\UrlGeneratorInterface;
use Yiisoft\Router\CurrentRoute;
use Yiisoft\Yii\View\Renderer\ViewRenderer;
final class NotFoundHandler implements RequestHandlerInterface
{
public function __construct(
private readonly UrlGeneratorInterface $urlGenerator,
private readonly CurrentRoute $currentRoute,
private ViewRenderer $viewRenderer
) {
$this->viewRenderer = $viewRenderer->withControllerName('site');
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
return $this->viewRenderer
->render('404', ['urlGenerator' => $this->urlGenerator, 'currentRoute' => $this->currentRoute])
->withStatus(Status::NOT_FOUND);
}
}