0

我创建了一个从 CErrorHandler 扩展的自定义错误处理程序类 (CMyErrorHandler)。

但是,当我在 config/main.php 中将 errorHandler 组件的类配置为 CMyErrorHandler 时,Yii 似乎仍在使用旧的 CErrorHandler 类。

    'errorHandler'=>array(
        'errorAction'=>'site/error',           
        'class' => 'application.components.CMyErrorHandler',
    ),

如何设法使用我的自定义错误处理程序?谢谢!

4

2 回答 2

0

您是否已经验证您CMyErrorHandler的扩展CErrorHandler是否正确?

也许这个链接可以帮助view_findpost_p_155043 " > http://www.yiiframework.com/forum/index.php/topic/32160-custom-error-logging/page_view_findpost_p_155043

于 2013-09-02T21:26:40.523 回答
0

我找到了问题的根源。我无法扩展 CErrorHandler 并仅覆盖我需要的两个方法(handleError 和 handleException),因为这些方法使用一个私有变量 un CErrorHandle,它在扩展类 CMyErrorHandle 中是不可访问的。我相信这是由于 Yii 的 CErrorHandle 类的糟糕设计(尽管我必须说我非常喜欢这个框架)。因此,我选择复制粘贴整个班级并在两种方法中进行所需的更改。在这些之后,一切都按预期工作。

于 2013-09-03T21:09:31.137 回答