Привет, ребята, я работаю с картой Zend и просто ненавижу тот факт, что я, кажется, сталкиваюсь со многими ошибками исключения, например, если я пытаюсь ссылаться на несуществующее свойство объекта, которое мое приложение просто умирает и падает. Однако я не знаю, где можно увидеть эти ошибки или как их отображать на экране. Я установил ошибки отображения в true и сообщение об ошибках в E_ALL, но когда возникает ошибка, все, что я вижу, это пустая страница, отображаемая только до бит, прежде чем произойдет ошибка или возникло исключение.
Помогите, пожалуйста, мои часы отладки перетаскиваются
Какова ценность переменной среды APPLICATION_ENV.
Стандартный public / index.php в приложении ZF выполняет следующие действия:
// 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');
Если вы создаете скелет приложения с помощью Zend Tool, у вас обычно будет контроллер ошибок, который будет улавливать ошибки во время выполнения и отображать их. Вы захотите следовать советам 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
Ссылка на несуществующее свойство – ошибка в PHP, а не исключение. Ошибки обычно выводятся в html, если вы включили display_errors в php.ini. Но будьте осторожны: они могут также встречаться в невидимом теге html, например:
<div style="display:none"><? echo $object->nonexistant?> ...
… так что вам нужно проверить вывод HTML на вашей странице ( CTRL-U в firefox) и прокрутить вниз