调试与错误
最后更新于:2022-04-02 07:06:15
## 调试
由于 MixPHP 是在命令行中启动的,所以使用 `echo`、`var_dump`、`print_r` 调试时,输出结果并不在浏览器中,而是在执行命令的终端里。
## HTTP 404 / 500
框架默认代码只拆分了 404/500 两种 HTTP 错误,如需定制 (比如隐藏异常敏感信息等),在 `/app` 目录搜索 `show404` `show500` 两个方法名,根据自己的需要修改。
- 修改为 json 格式:
~~~
/**
* 404处理
* @param \Throwable $e
* @param Response $response
* @throws \PhpDocReader\AnnotationException
* @throws \ReflectionException
*/
public static function show404(\Throwable $e, Response $response)
{
$json = JsonHelper::encode([
'message' => $e->getMessage(),
'type' => get_class($e),
'code' => $e->getCode(),
'file' => $e->getFile(),
'line' => $e->getLine(),
'trace' => $e->getTraceAsString(),
], JSON_UNESCAPED_UNICODE);
$response->withBody((new StreamFactory())->createStream($json))
->withStatus(404)
->withContentType('application/json', 'utf-8')
->end();
}
/**
* 500处理
* @param \Throwable $e
* @param Response $response
* @throws \PhpDocReader\AnnotationException
* @throws \ReflectionException
*/
public static function show500(\Throwable $e, Response $response)
{
$json = JsonHelper::encode([
'message' => $e->getMessage(),
'type' => get_class($e),
'code' => $e->getCode(),
'file' => $e->getFile(),
'line' => $e->getLine(),
'trace' => $e->getTraceAsString(),
], JSON_UNESCAPED_UNICODE);
$response->withBody((new StreamFactory())->createStream($json))
->withStatus(500)
->withContentType('application/json', 'utf-8')
->end();
}
~~~
';