ZF2 2.5并不总是显示完整的错误消息

时间:2017-01-24 14:17:57

标签: php exception-handling zend-framework2 php-7 error-reporting

由于我将Zend-Framework更新到版本2.5.3并将PHP更新到版本7.0,因此如果发生异常,我并不总是会收到完整的错误消息。

例如:发生异常,我可以获得异常消息的唯一方法是使用调试器(Class:ExceptionStrategy,Row:121):

enter image description here

在前端,只显示一般错误消息:

enter image description here 我打开了PHP错误报告(在我的local.php和php.ini中):

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

奇怪的是,有时候我会收到完整的错误消息,包括堆栈跟踪以及我需要调试的所有内容,但有时我只得到那个通用错误消息。

我希望它看起来像这样:

enter image description here

有人经历过这种行为吗?这是正常的吗?

2 个答案:

答案 0 :(得分:1)

好的,现在我找到了。问题出在我的错误模板中,因为有一个if语句检查异常是否是异常的实例:

<?php if(isset($this->exception) && $this->exception instanceof Exception): ?>

自PHP 7以来,大多数错误报告都有错误异常,所以我不得不像这样扩展if语句:

<?php if(isset($this->exception) && ($this->exception instanceof Exception || $this->exception instanceof Error)): ?>

答案 1 :(得分:0)

不确定这是否会导致您的问题,但无论如何都值得一提。

您必须配置视图管理器以显示/呈现异常。您可以在ZF2 documentation here

中详细了解如何配置视图渲染器

视图管理器配置中有一个专用键:

'display_exceptions' => true,