使用Zend框架时显示php错误

Eth*_*han 24 php zend-framework

我一直在使用Zend Framework并且暂时忍受这个问题,但是现在它太烦人了,所以我会把问题发给你.

Zend框架中存在Zend可以识别的某些问题(例如调用不存在的控制器),并将该问题发送到ErrorController.我的工作正常.

似乎有一些问题,Zend框架将失败并通过PHP显示错误,如果某个功能不存在或某事.那些我能看到并修复的东西.

有时虽然,Zend不会失败,但它也会发出一个空的回复.我会得到一个空白页面.他们的布局没有出现,没有代码,没有什么可以让我知道出了什么问题.上一次,有一个失败的require().我不得不在没有反馈的情况下手动解决这个问题.

有没有人经历过这个?您对如何显示这些错误有任何建议吗?任何帮助,将不胜感激!

jas*_*son 32

框架的MVC组件的内部错误处理只能捕获异常,而不是PHP错误.

要在开发期间协助调试,您可以使用标准:

error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 'on');
Run Code Online (Sandbox Code Playgroud)

此外,如果您使用1.8附带的新Autoloader,请使用:

Zend_Loader_Autoloader::getInstance()->suppressNotFoundWarnings(false);
Run Code Online (Sandbox Code Playgroud)

允许发出失败的include/require语句.


Nie*_*Bom 12

对于遇到此问题的其他人:我在configs/application.ini中更改了以下行

resources.frontController.params.displayExceptions = 0
Run Code Online (Sandbox Code Playgroud)

至:

resources.frontController.params.displayExceptions = 1
Run Code Online (Sandbox Code Playgroud)

这让我可以看到完整的Exception,包括stacktrace.


Kam*_*los 11

在您的配置中设置:

phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
Run Code Online (Sandbox Code Playgroud)


小智 8

编辑文件public/index.php.
将APPLICATION_ENV更改为"development".

这将使用application/configs/application.ini文件中的开发设置.这些设置定义是否抑制错误.


Jay*_*att 6

现在回答这个问题为时已晚.但希望它会帮助别人......

只需将以下函数放在Bootstrap.php文件中即可启用异常.

protected function _initErrorDisplay(){
        $frontController = Zend_Controller_Front::getInstance();
        $frontController->throwExceptions(true);
    }
Run Code Online (Sandbox Code Playgroud)