Как я отображаю ошибки исключения, брошенные платформой Зенда

Привет парни, я работаю с платформой Зенда и просто ненавижу то, что я, кажется, встречаюсь с сотнями ошибок исключения как то, если я пытаюсь сослаться на не существующее свойство объекта мое приложение просто, умирают и отказывают. Однако я понятия не имею, где видеть эти ошибки или как смочь отобразить их на экране. У меня есть ошибки дисплея аппарата к истинному и сообщению об ошибке к E_ALL, но когда ошибка брошена все, что я вижу, пустая страница, представленная только до немного прежде, где ошибка, по-видимому, произошла, или исключение было выдано.

Справка моя отладка часов перетаскивает

8
задан Ali 2 May 2010 в 10:17
поделиться

3 ответа

Каково значение переменной окружения APPLICATION_ENV.

Стандартный public/index.php в приложении ZF делает следующее:

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

Это означает, что если переменная APPLICATION_ENV не установлена, то окружение устанавливается как "production". Если вы посмотрите на свой файл application.ini, то увидите, что фреймворк подавляет ошибки, если окружение - production.

Конечно, вы занимаетесь разработкой, поэтому вы хотите использовать среду 'development'.

Если вы работаете под управлением Apache/mod_php, вы можете установить это в httpd.conf или в файле .htaccess:

SetEnv APPLICATION_ENV development

Или вы всегда можете стать уродливым и взломать ваш public/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');
4
ответ дан 5 December 2019 в 21:17
поделиться

Ссылка на несуществующее свойство является ошибкой в PHP, а не исключением. Ошибки обычно появляются в выводе html, если вы включили display_errors в вашем php.ini. Но будьте осторожны: они также могут возникать в невидимом теге html, например:

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

... поэтому вам нужно проверить вывод HTML вашей страницы ( CTRL-U в firefox) и прокрутить вниз

1
ответ дан 5 December 2019 в 21:17
поделиться

Если вы создаете скелет приложения с помощью Zend Tool, у вас обычно есть контроллер ошибок, который будет перехватывать ошибки во время выполнения и отображать их. Вам нужно последовать совету timdev SetEnv APPLICATION_ENV development и затем, в вашем application/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
2
ответ дан 5 December 2019 в 21:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: