Zend Framework - отображаются не все ошибки - PullRequest
2 голосов
/ 15 октября 2010

В методе действия у меня есть следующий фрагмент кода:

error_reporting(E_ALL);
ini_set('display_errors', '1');
Logger::log('test');

Класс Logger определяется следующим образом:

class Logger {
    public static function log() {
        echo "test";
}

Я намеренно забыл закрывающую скобкуфункция для демонстрации проблемы.Когда вызывается действие, на экране абсолютно ничего не отображается.Что это за ошибка, и почему она не отображается, хотя я настроил PHP для отображения всех ошибок, как показано выше?

Конечно, если я добавлю пропущенную фигурную скобку, все будет в порядке.

Ответы [ 2 ]

3 голосов
/ 15 октября 2010

Вы также должны включить display_startup_errors, чтобы показать фатальные ошибки:

Даже если display_errors включено, ошибки, возникающие во время последовательности запуска PHP, не отображаются. Настоятельно рекомендуется отключить display_startup_errors, за исключением отладки.

Также см. Примечание для display_errors:

Хотя display_errors может быть установлено во время выполнения (с ini_set()), это не окажет никакого влияния, если в скрипте есть фатальные ошибки. Это потому, что желаемое действие во время выполнения не выполняется.

Вы можете установить оба значения в приложении Zend Framework application.ini. О sidenote: если вы установите error_reporting(-1), он сообщит (! Display) обо всех ошибках, включая E_STRICT и любые последующие добавления.

2 голосов
/ 26 января 2012

У меня точно такая же проблема - мне не удалось ее полностью решить, но я обнаружил, что все ошибки правильно записываются в файл, даже если они не отображаются.

Просто поместите эти строки в конфигурационный файл .htaccess / server:

php_value       log_errors                      On
php_value       error_log                       "/path_to_logs/errors.log"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...