В методе действий у меня есть следующий фрагмент кода:
error_reporting(E_ALL); ini_set('display_errors', '1'); Logger::log('test');
Класс Logger определяется следующим образом:
class Logger { public static function log() { echo "test"; }
Я сознательно забыл о закрытии фигуры функции, чтобы продемонстрировать проблему. Когда действие вызывается, абсолютно ничего не отображается на экране. Какая ошибка это и почему она не отображается, хотя я настроил PHP, чтобы показать все ошибки, как показано выше?
Конечно, если я добавлю недостающую фигурку, все будет в порядке.
Вы также должны включить display_startup_errors
для отображения фатальных ошибок:
Даже когда
display_errors
, ошибки, возникающие во время запуска PHP, не отображаются. Настоятельно рекомендуется отключитьdisplay_startup_errors
, кроме отладки.
Также см. Примечание для display_errors
:
Хотя
display_errors
могут быть установлены во время выполнения (с помощьюini_set()
), это не повлияет, если скрипт имеет фатальные ошибки. Это связано с тем, что желаемое действие во время выполнения не выполняется.
Вы можете установить оба значения в приложении application.ini Zend Framework. На стороне: если вы установите error_reporting(-1)
он сообщит (!) Все ошибки, включая E_STRICT
и любые будущие дополнения.
У меня точно такая же проблема – мне не удалось полностью ее решить, но я обнаружил, что все ошибки правильно записываются в файл, даже если они не отображаются.
Просто поместите эти строки в конфигурацию .htaccess / server:
php_value log_errors On php_value error_log "/path_to_logs/errors.log"