0

因爲我更新的Zend框架2.5.3版本和PHP 7.0的版本,我並不總是如果出現異常得到完整的錯誤消息。ZF2 2.5不總是顯示完整的錯誤消息

例如:異常發生,我可以得到異常消息的唯一方法是通過使用調試器(類別:ExceptionStrategy,行: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

已經有人經歷了這種行爲?這是正常的嗎?

回答

0

好吧,現在我找到了。這個問題在我的錯誤模板,因爲有一個if語句用來檢查是否異常是異常的一個實例:

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

由於PHP 7大多數錯誤與錯誤異常報告,所以我不得不如果延長 - 這樣的陳述:

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

不知道這是否會導致您的問題,但無論如何值得一提。

您必須配置您的視圖管理器顯示/渲染例外。你可以閱讀更多關於如何在ZF2 documentation here內配置你的視圖渲染器。

有視圖管理器配置中的專用鍵:

'display_exceptions' => true, 
+0

我已經將display_exceptions設置爲true。即使異常發生在同一個動作中,它有時會給我完整的堆棧跟蹤,有時卻不會 – Sepultura