由于我将Zend-Framework更新到版本2.5.3并将PHP更新到版本7.0,因此如果发生异常,我并不总是会收到完整的错误消息。
例如:发生异常,我可以获得异常消息的唯一方法是使用调试器(Class:ExceptionStrategy,Row:121):
在前端,只显示一般错误消息:
我打开了PHP错误报告(在我的local.php和php.ini中):
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
奇怪的是,有时候我会收到完整的错误消息,包括堆栈跟踪以及我需要调试的所有内容,但有时我只得到那个通用错误消息。
我希望它看起来像这样:
有人经历过这种行为吗?这是正常的吗?
答案 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,