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

为php定制漂亮的错误提示

高老师5年前 (2020-11-04)PHP1452

关于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解决浮点数精度问题

php解决浮点数精度问题

首先看看以下代码:代码1:<?php $a=0.1; $b=0.7; if($a+$b==0.8) { echo "1"; } else{ echo "2"; } ?>代码2:<?php   &n...

 php 判断是否post,php判断是否post提交,php 判断是否为post,php 判断get 还是post

php 判断是否post,php判断是否post提交,php 判断是否为post,php 判断get 还是post

if($_SERVER['REQUEST_METHOD'] == 'POST') { echo('This is  post '); } elseif ($_SERVER['...

php数组合并 array_merge和+号的区别

php数组合并 array_merge和+号的区别

array_merge是最常用的数组合并方法,+号同样也可以,但是却有很大不同。array_merge遇到相同字符串key,后面数组的key会覆盖前面数组的key,+号正好相反。$a = [ 'one' => 'A on...

php new class

php new class

<?php $member = new class {     public function getInfo()     {    ...

posix_ttyname函数详解

posix_ttyname函数详解

posix_ttyname - 获取当前终端设备名称。<?php     var_dump( posix_ttyname(STDOUT) );我们启动一个终端,执行上面的代码输出:/dev/tty1我们再启动一个终端,执行上面的代码输...

PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl.dll找不到指定的模块

PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl.dll找不到指定的模块

最近在编写windows php多线程的东西,从官网下载了PHP的线程安全版,尝试开启curl扩展extension=php_curl.dllphp -m 却提示 PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl...