2015-05-04 3 views
4

Может у кого есть какие-либо идеи, что может привести к Yii2 обработчик ошибок правильно останавливается на следующей строке:Yii2 обработчик ошибок умирает некрасиво на не-объект вызывает

echo $missing; 

(предполагая, что $missing равно нулю) и отображаются правильно "Неопределенная переменная: отсутствует ..." извещение. И в то же время «умирают» полностью на следующей строке:

echo $missing->noneExisting(); 

и дисплей (возврат) полностью пустой страницы вместо правильного сообщения об ошибке?

У меня очень странные проблемы с обработчиком ошибок Yii2 с тех пор, как я начал кодирование в Yii2. Вышеприведенный код является одним из примеров. Другим является то, что обновление Yii пространства имен в миграции causes command-line console to die ugly, instead of displaying proper fatal error.

I've been told, эта проблема вызвана моей конфигурацией PHP. Но я нашел, что это трудно поверить - в основном потому, что:

  • Я не изменил ничего в моей структуре XAMPP, php.ini контента и т.д. за прошлые много, много месяцев, я на самом деле до сих пор использую старый -хорошо 1.8.1 версия XAMPP (версированной без соответствия PHP версии),

  • все metioned проблемы начались около месяца назад, когда я начал программировать в Yii2 и происходит в Yii2-приложений, работающих только - я могу Не воспроизводите какие-либо из вышеупомянутых проблем в любом из моих проектов с Yii1.

Я согласен, что это должно быть что-то в моей локальной установки PHP, потому что я испытал все эти примеры в свеже-новый установлен XAMPP 5.6.8 и в портативной версии. Но, поскольку я могу воспроизвести эту проблему только в проекте с питанием от Yii2, и все идет так же хорошо, как и в приложении с Yii1 или при чистом PHP, тогда внутри должен быть какой-то неприятный дьявол.

Может кто-нибудь помочь здесь или, по крайней мере, пролить свет, с чего мне начать искать?

+1

Idk на самом деле. У меня есть 'XAMPP Version 1.8.3' с' php 5.5.11'. Протестировано и для меня правильные ошибки php fatal. Так что это, должно быть, ваша локальная проблема установки, возможно, попробуйте другой кэш или бродячий бокс. – ineersa

+1

Вы установили для переменной debug значение true в web/index.php 'defined ('YII_DEBUG') или define ('YII_DEBUG', true); определяется ('YII_ENV') или определяет ('YII_ENV', 'dev'); ' – arkoak

+0

@arkoak Да, конечно! :> – trejder

ответ

1

Я узнал, что в некоторых средах, когда Yii2 обрабатывает недостающую ошибку переменной, в ней отображается ошибка в нижней части отладчика.

Warning: var_export does not handle circular references in ~/vendor/yiisoft/yii2/helpers/BaseVarDumper.php on line 187

Возможно, что ошибка является причиной вашей среды, чтобы умереть от этого. Однако это кажется ошибкой.

Кроме того, я нашел обходное решение, используя решение, приведенное в этом документе Github Issue. Это некрасиво, но это решение.

Редактировать: Патч для этой проблемы был выпущен. See here