igorsantos07/yii-whoops

此包已废弃,不再维护。未建议替代包。

Whoops集成类到Yii框架1.1

安装次数: 2,988

依赖者: 0

推荐者: 0

安全: 0

星星: 8

关注者: 2

分支: 1

公开问题: 4

类型:yii-extension

v1.3.1 2014-09-30 20:06 UTC

This package is auto-updated.

Last update: 2023-12-28 21:45:53 UTC


README

将Whoops库集成到Yii 1.1并启用进一步错误处理。

当前的CErrorHandler行为是使用内部错误视图来显示开发问题,例如errorexception视图。如果你不在调试模式下,它将简单地调用纯错误操作并在屏幕上显示更少的内容,这样你的用户就不会看到丑陋的错误。

这个新实现允许你在需要时包括一个最后、全局的错误处理程序,在显示错误信息之前。调用errorAction,如果它无法处理问题,我们将接管并决定如何处理错误 - 如果你正在调试应用程序,我们将为你提供一个非常、非常棒的错误页面,这将帮助你找到问题所在 :)

使用方法

  1. 安装它

    • 使用 Composer (它将自动安装Whoops主库)
    composer require igorsantos07/yii-whoops:1
    composer install
    • 或者 下载 并在你的 extensions 文件夹中解压。
  2. 如果你使用Composer,我强烈建议你创建一个vendor别名,如果你还没有的话。将以下内容添加到你的 config/main.php 文件的开始部分

    Yii::setPathOfAlias('vendor', __DIR__.'/../../vendor');
  3. 用错误处理程序类替换你的 config/main.php 中的 errorHandler 条目。例如

    'errorHandler' => ['class' => 'vendor.igorsantos07.yii-whoops.WhoopsErrorHandler']
  4. 如果你使用了一些绑定到应用程序端的自定义LogRoute,你可以使用组件的disabledLogRoutes属性来禁用它。只需将其设置为包含你想要禁用的每个路由的所有类名(不是别名!)的数组。默认情况下,它会禁用著名的(Yii Debug Toolbar)ydtb;如果你希望保持启用,则重写defaultDisabledLogRoutes属性。

    'errorHandler' => [
        'class'             => 'vendor.igorsantos07.yii-whoops.WhoopsErrorHandler',
        'disabledLogRoutes' => 'MyCustomRouteClass'
    ]
  5. 错误进一步处理API有一些变化。如果你想要自定义错误页面,你可以像往常一样在errorHandler中包含一个errorAction属性,但有一些不同之处

    • Yii::app()->errorHandler->error在PHP错误的情况下可以是CEvent,在异常的情况下是正常的Exception。在处理你的操作中的错误时要考虑到这一点,因为PHP错误没有代码等 - 然而,如果你正在显示错误页面,建议使用标准的500代码。
    • 如果你的操作无法处理错误,Whoops仍然会像往常一样接管。例如:应用程序中的所有API错误将显示一条简短的消息并将用户重定向,而其他错误则是真正的问题,应由框架的错误处理程序处理。要告诉WhoopsErrorHandler你已经处理了这个问题,请调用Yii::app()->errorHandler->handled(),然后Whoops将不会干扰操作所做的一切;如果操作之后它仍然认为应该做点什么,Whoops错误页面将像往常一样调用。

示例截图

687474703a2f2f692e696d6775722e636f6d2f70717438664b342e706e67