关于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:for循环批量插入100W数据<?php set_time_limit(0); $servername = "localhost"; $username = "root"; $password ...
前面的文章对于高并发下单商品导致商品库存为负值的问题请先阅读再阅读本篇文章一定对您有帮助,建议亲手测试较好。加上文件锁后的下单处理代码:【一】.阻塞模式:(如果其他进程已经加锁文件,当前进程会一直等其他进程解锁文件后继续执行)<?php //连接数据库 $con=mysqli_connect(...
php官方已经提供了Iterator(迭代器)接口,通过网上资料的学习,目前看适合超大集合或者数组提取使用。学习一个函数的实现对比内存占用差距.使用迭代器和普通循环实现range()函数。(1).普通循环实现range()函数。function newrange($low, $h...
主要原理是通过PHP创建多个子进程,在子进程中发送进程闹钟信号,然后再监听闹钟信号中继续发送闹钟信号。同时通过父进程设置非阻塞运行。代码如下:<?php /** * 订单任务 */ class Order { &n...
概念请参考w3school文章: redis watch ,redis exec (看完基本秒懂)(1)基本事务://连接本地的 Redis 服务 $redis = new Redis(); $redis->con...
本篇文章是给新手学习php redis队列怎么玩的。我们模拟验证码发送,通过队列完成。(1).创建一个验证码发送接口/** * 发送验证码 */ public function sendCaptcha() { ...