404处理

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

指定默认处理器

配置文件中:

  1. return [
  2. 'beans' => [
  3. 'HttpNotFoundHandler' => [
  4. // 指定默认处理器
  5. 'handler' => \xxx\HttpNotFoundHandler::class,
  6. ],
  7. ],
  8. ];

编写处理器

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

  1. <?php
  2. class HttpNotFoundHandler implements IHttpNotFoundHandler
  3. {
  4. public function handle(ServerRequestInterface $request, ResponseInterface $response): ResponseInterface
  5. {
  6. return $response->withStatus(StatusCode::NOT_FOUND);
  7. }
  8. }