当前位置:首页 > PHP > 正文内容

为php定制漂亮的错误提示

高老师6年前 (2020-11-04)PHP1619

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

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

看看下面这个错误代码:

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

执行将输出:

Notice: Undefined offset: 0 in D:\localhost\projects\test\test.php on line 27

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

通过composer安装Whoops

{
    "require": {
        "filp/whoops": "*"
    }
}

在项目中使用

$run     = new \Whoops\Run;
$handler = new \Whoops\Handler\PrettyPageHandler;
$JsonHandler = new \Whoops\Handler\JsonResponseHandler;

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

/* Sample code that throws an error */

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

执行即可看到效果

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

$run     = new \Whoops\Run;
$handler = new \Whoops\Handler\PrettyPageHandler;
$JsonHandler = new \Whoops\Handler\JsonResponseHandler;

/* 设置页面标题 */
$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();

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

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/186.html

分享给朋友:

“为php定制漂亮的错误提示” 的相关文章

编写php com组件,php调用.net dll,php源码保护

编写php com组件,php调用.net dll,php源码保护

开发com组件可以用c++,vc++,net,我比较熟悉net,演示用dnet(1).创建项目:启动vs2017,新建项目,选择Visual C# ->Windows桌面->类库通用windows(2). 修改Com项目:点击 项目->项目属性,再点击应用程序->程序集信息,...

xmlrpc  php,php通过xml-rpc进行通信

xmlrpc php,php通过xml-rpc进行通信

xmlrpc协议是通过http请求xml数据进行通信。webservice中和它相同的是soap。soap调用的确很简单,但是创建wsdl太繁琐,效率低下。xmlrpc很好的解决这个问题。(1).创建xmlrpc服务端(求和函数api)function getSum($method,$ar...

PHP获取站点根目录,PHP获取应用根目录,cgi和cli都支持

PHP获取站点根目录,PHP获取应用根目录,cgi和cli都支持

重构框架的时候想要考虑支持下cli模式,于是参考了thinkphp的底层。/**  * 获取应用根目录  * @return string  */ public static function getRootP...

php jsonp转json,php jsonp转数组,php jsonp转对象

php jsonp转json,php jsonp转数组,php jsonp转对象

将jsonp转为PHP数组和对象。/**  * jsonp转数组|Jsonp转json  * @param string $jsonp jsonp字符串  * @param bool $as...

php爬虫执行js,php执行js

php爬虫执行js,php执行js

当我们使用php爬虫采集网站时经常会遇到内容使用ajax异步加载。一般采取的方案是PHP模拟再请求api接口获取数据,但是有时候前端js加密非常麻烦,我们需要将js的加密方法转换为php方法方便curl请求。当然通过了解我们可以通过3种方案解决。第一种:使用phpv8js扩展执行js代码。(pecl...

 php转换文本编码,php字符编码转换,php编码转换

php转换文本编码,php字符编码转换,php编码转换

整理一个自己用的编码转换方法,不需要知道原字符串的编码,只需要传入字符串,和你想要转换的编码。/**  * 编码转换  * @param string $char  * @param string $...