关于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();
更多的玩法参考文档官方文档
首先看看以下代码:代码1:<?php $a=0.1; $b=0.7; if($a+$b==0.8) { echo "1"; } else{ echo "2"; } ?>代码2:<?php &n...
if($_SERVER['REQUEST_METHOD'] == 'POST') { echo('This is post '); } elseif ($_SERVER['...
array_merge是最常用的数组合并方法,+号同样也可以,但是却有很大不同。array_merge遇到相同字符串key,后面数组的key会覆盖前面数组的key,+号正好相反。$a = [ 'one' => 'A on...
<?php $member = new class { public function getInfo() { ...
posix_ttyname - 获取当前终端设备名称。<?php var_dump( posix_ttyname(STDOUT) );我们启动一个终端,执行上面的代码输出:/dev/tty1我们再启动一个终端,执行上面的代码输...
最近在编写windows php多线程的东西,从官网下载了PHP的线程安全版,尝试开启curl扩展extension=php_curl.dllphp -m 却提示 PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl...