为php定制漂亮的错误提示

2023-06-03 11:45:56 浏览数 (1)

关于PHP的烦恼之一是它引发的错误消息过于简洁。并不是说完全没用;最让人头疼的是,必须在给定的错误位置打开源文件来检查问题。此外,也不容易获得完整的系统上下文,例如(PHP系统变量,cookie,会话等)。

Whoops是一个不错的错误提示库,它通过帮助您以用户友好的方式处理错误和异常来帮助您更好地开发和维护PHP项目。Whoops已经是Laravel 4的一部分,放心用起来。

看看下面这个错误代码:

代码语言:javascript复制
$planets = array();
echo $planets[0];

执行将输出:

代码语言:javascript复制
Notice: Undefined offset: 0 in D:localhostprojectstesttest.php on line 27

使用了Whoops实际的错误页面包含的信息比此处提供的信息还要多-比如会话变量,Cookie,HTTP标头等。

通过composer安装Whoops

代码语言:javascript复制
{
    "require": {
        "filp/whoops": "*"
    }
}

在项目中使用

代码语言:javascript复制
$run     = new WhoopsRun;
$handler = new WhoopsHandlerPrettyPageHandler;
$JsonHandler = new WhoopsHandlerJsonResponseHandler;

$run--->pushHandler($JsonHandler);
$run->pushHandler($handler);
$run->register();

/* Sample code that throws an error */

$planets = array();
echo $planets[0];

执行即可看到效果

另外我们还可以自定义信息

代码语言:javascript复制
$run     = new WhoopsRun;
$handler = new WhoopsHandlerPrettyPageHandler;
$JsonHandler = new WhoopsHandlerJsonResponseHandler;

/* 设置页面标题 */
$handler->setPageTitle("Oops, Error encountered!");

/* 其他信息设置 */
$handler->addDataTable("Extra Slice of Info", array(
      "page-id"     => 173,
      "page-name"   => "foo-bar",
      "app-name"    => "fb"
));

$run->pushHandler($handler);
$run->register();

更多的玩法参考文档官方文档

php

0 人点赞