src/NotFoundHandler.php
<?php
declare(strict_types=1);
namespace Yiisoft\Yii\Web;
use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
use Yiisoft\Http\Status;
final class NotFoundHandler implements RequestHandlerInterface
{
/**
* @var ResponseFactoryInterface
*/
private ResponseFactoryInterface $responseFactory;
/**
* NotFoundHandler constructor.
*
* @param ResponseFactoryInterface $responseFactory
*/
public function __construct(ResponseFactoryInterface $responseFactory)
{
$this->responseFactory = $responseFactory;
}
/**
* Handles a request and produces a response.
*
* May call other collaborating code to generate the response.
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$path = $request->getUri()->getPath();
$response = $this->responseFactory->createResponse(Status::NOT_FOUND);
$response->getBody()->write("We were unable to find the page $path.");
return $response;
}
}