igorsantos07 / yii-whoops
此包已废弃,不再维护。未建议替代包。
Whoops集成类到Yii框架1.1
v1.3.1
2014-09-30 20:06 UTC
Requires
- filp/whoops: 1.*
- yiisoft/yii: 1.1.*
README
将Whoops库集成到Yii 1.1并启用进一步错误处理。
当前的CErrorHandler
行为是使用内部错误视图来显示开发问题,例如error
和exception
视图。如果你不在调试模式下,它将简单地调用纯错误操作并在屏幕上显示更少的内容,这样你的用户就不会看到丑陋的错误。
这个新实现允许你在需要时包括一个最后、全局的错误处理程序,在显示错误信息之前。调用errorAction
,如果它无法处理问题,我们将接管并决定如何处理错误 - 如果你正在调试应用程序,我们将为你提供一个非常、非常棒的错误页面,这将帮助你找到问题所在 :)
使用方法
-
安装它
- 使用 Composer (它将自动安装Whoops主库)
composer require igorsantos07/yii-whoops:1 composer install
- 或者 下载 并在你的
extensions
文件夹中解压。
-
如果你使用Composer,我强烈建议你创建一个
vendor
别名,如果你还没有的话。将以下内容添加到你的config/main.php
文件的开始部分Yii::setPathOfAlias('vendor', __DIR__.'/../../vendor');
-
用错误处理程序类替换你的
config/main.php
中的errorHandler
条目。例如'errorHandler' => ['class' => 'vendor.igorsantos07.yii-whoops.WhoopsErrorHandler']
-
如果你使用了一些绑定到应用程序端的自定义LogRoute,你可以使用组件的
disabledLogRoutes
属性来禁用它。只需将其设置为包含你想要禁用的每个路由的所有类名(不是别名!)的数组。默认情况下,它会禁用著名的(Yii Debug Toolbar)ydtb;如果你希望保持启用,则重写defaultDisabledLogRoutes
属性。'errorHandler' => [ 'class' => 'vendor.igorsantos07.yii-whoops.WhoopsErrorHandler', 'disabledLogRoutes' => 'MyCustomRouteClass' ]
-
错误进一步处理API有一些变化。如果你想要自定义错误页面,你可以像往常一样在
errorHandler
中包含一个errorAction
属性,但有一些不同之处Yii::app()->errorHandler->error
在PHP错误的情况下可以是CEvent
,在异常的情况下是正常的Exception
。在处理你的操作中的错误时要考虑到这一点,因为PHP错误没有代码等 - 然而,如果你正在显示错误页面,建议使用标准的500代码。- 如果你的操作无法处理错误,Whoops仍然会像往常一样接管。例如:应用程序中的所有API错误将显示一条简短的消息并将用户重定向,而其他错误则是真正的问题,应由框架的错误处理程序处理。要告诉
WhoopsErrorHandler
你已经处理了这个问题,请调用Yii::app()->errorHandler->handled()
,然后Whoops将不会干扰操作所做的一切;如果操作之后它仍然认为应该做点什么,Whoops错误页面将像往常一样调用。