【问题标题】:Cakephp2 - Ovrride HttpException wih custom classCakephp 2 - 使用自定义类覆盖 Http 异常
【发布时间】:2016-03-26 09:44:41
【问题描述】:
CakePhp 异常的默认行为是可以传递消息,并且该消息显示在名称和消息键上。我想扩展此功能并在引发异常时为消息和名称键显示不同的值。此外,我想不时提供一组自定义字段。
为了实现这一点,我在 cakephp 中创建了一个自定义的 ExceptionRenderer,它在抛出 cakeexception 并传递一个数组时可以正常工作,但是如果我将一个数组传递给 HTTPException 继承的异常,例如 NotFoundException,它会抛出一个错误。
为了实现这一点,我正在考虑覆盖 cakephp 具有的默认 HTTPException 类,但我无法这样做。我想知道如何做到这一点。
【问题讨论】:
标签:
cakephp
cakephp-2.0
cakephp-2.3
【解决方案1】:
嗯..这有点棘手...
您可以在 App 目录中创建一个名为 Error 的文件夹。
在里面复制这个file,然后在你的bootstrap.php里面替换行
require CAKE . 'Error' . DS . 'exceptions.php';
与
require APP . DS . 'Error' . DS . 'exceptions.php';
然后您可以开始以您喜欢的方式更改异常。
这也许可行,但可能会产生一些副作用。例如,如果原始文件在存储库中更新,您可能必须手动更新文件。此外,您还必须限制对 Exception 类的更改,因为您不知道这些类可能在核心内部的什么位置使用,并且您可能会刹车。
主要是不要更改他们的签名。