2010-05-02 33 views
8

嗨,大家好我正在使用Zend框架,只是讨厌我似乎遇到数百个异常错误,如果我尝试引用一个对象的不存在的属性我的事实我应用程序就会死亡并崩溃。但是,我不知道在哪里看到这些错误或如何能够在屏幕上显示它们。我将显示错误设置为true,并向E_ALL报告错误,但是当抛出错误时,我所看到的只是一个空白页面,直到显示错误或引发异常之前的一段时间。如何显示由Zend框架引发的异常错误

请帮助我调试小时拖动

回答

4

APPLICATION_ENV环境变量的值是什么。

在ZF应用程序的标准的公共/ index.php文件执行以下操作:

// Define application environment 
defined('APPLICATION_ENV') 
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); 

这意味着,如果没有APPLICATION_ENV设置,环境设置为“生产”。如果你看看你的application.ini文件,你会发现如果环境是生产环境的话,框架可以抑制错误。

当然,你正在开发,所以你想使用'开发'环境。

如果你在Apache/mod_php的运行,你可以把这个在你的httpd.conf,或.htaccess文件:

SetEnv APPLICATION_ENV development 

或者你总是可以得到丑陋,谬以千里,在你的公共/ index.php:

// Define application environment 

/*defined('APPLICATION_ENV') 
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));*/ 

// Ugly hack because I'm too lazy to properly set up my environment. 
define('APPLICATION_ENV','development'); 
+0

对于简单的答案和解释它的作用+1。它的工作原理:) – Benj 2012-12-14 10:22:28

+0

感谢提到它可以在httpd.conf中设置! – Christian 2013-07-15 14:07:11

1

引用一个不存在的属性是一个错误在PHP中,也不例外。如果在你的php.ini中启用display_errors,错误通常在html的输出中。但要注意:他们可以像一个无形的HTML标签中,以及发生:

<div style="display:none"><? echo $object->nonexistant?> ... 

...所以你需要检查你的页面的HTML输出(CTRL-U在Firefox),并滚动至底部

+0

一个异常被抛出,当我尝试访问它似乎是一个对象的不存在的属性。考虑到所讨论的对象可能有或没有我想检查的财产,是否有办法解决这个问题。 – Ali 2010-05-03 07:44:25

2

如果使用Zend Tool创建应用程序框架,通常会有一个错误控制器来捕获运行时错误并显示它们。你要遵循timdev的建议SetEnv APPLICATION_ENV development,然后在您的应用程序/ CONFIGS /的application.ini:

[development : production] 

; This section defines config parameters loaded when the APPLICATION_ENV directive 
; is set to 'development' - undefined parameters are inherited from the production 
; section. 

; show errors and exceptions during development 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 
resources.frontController.params.displayExceptions = 1