404处理

优质
小牛编辑
137浏览
2023-12-01

当没有匹配的路由,这时候可能会需要404处理。框架默认的404处理为状态码设为404,如果需要自定义处理,需要编写自定义处理类。

指定默认处理器

配置文件中:

return [
    'beans'    =>    [
        'HttpNotFoundHandler'    =>    [
            // 指定默认处理器
            'handler'    =>    \xxx\HttpNotFoundHandler::class,
        ],
    ],
];

编写处理器

如下代码所示,实现IHttpNotFoundHandler接口,handle()方法返回值为Response对象。

<?php
class HttpNotFoundHandler implements IHttpNotFoundHandler
{
    public function handle(RequestHandlerInterface $requesthandler, ServerRequestInterface $request, ResponseInterface $response): ResponseInterface
    {
        return $response->withStatus(StatusCode::NOT_FOUND);
    }
}