Кто-нибудь может иметь какие-либо идеи, что может привести к корректной остановке обработчика ошибок Yii2 в следующей строке:
echo $missing;
(при условии, что $missing
равно нулю) и отображается правильноНеопределенная переменная: отсутствует …«Обратите внимание. И в то же время« умереть »полностью в следующей строке:
echo $missing->noneExisting();
и отобразить (вернуть) полностью пустую страницу вместо правильного сообщения об ошибке?
У меня очень странные проблемы с обработчиком ошибок Yii2 с тех пор, как я начал программировать в Yii2. Выше код является одним из примеров. Еще один, что повторное выделение Yii
пространство имен в миграции приводит к тому, что консоль командной строки умирает, вместо того, чтобы отображать соответствующую фатальную ошибку.
мне сказали, что эта проблема вызвана моей конфигурацией PHP. Но мне было трудно поверить — главным образом потому, что:
Я не изменилась что-нибудь в моей структуре XAMPP, php.ini
содержание и т. д. в течение многих, многих месяцев, я на самом деле все еще использую старую-хорошую версию XAMPP 1.8.1 (версию без соответствия версии PHP),
все перечисленные проблемы начались около месяца назад, когда я начал кодировать в Yii2 и происходит только в приложениях на Yii2 — я не могу воспроизвести ни одну из вышеупомянутых проблем ни в одном из моих проектов на Yii1.
Я согласен, что это должно быть что-то в моей локальной установке PHP, потому что я проверил все эти примеры в только что установленном XAMPP 5.6.8 и в его переносимой версии. Но, поскольку я могу воспроизвести эту проблему только в проекте на Yii2, и все идет так же хорошо, как в приложении на Yii1 или на чистом PHP, внутри должен быть какой-то неприятный дьявол.
Может ли кто-нибудь помочь здесь или хотя бы пролить свет на то, с чего мне начать искать?
Я обнаружил, что в некоторых средах, когда Yii2 обрабатывает ошибку отсутствующей переменной, он показывает ошибку в нижней части отладчика.
Warning: var_export does not handle circular references in ~/vendor/yiisoft/yii2/helpers/BaseVarDumper.php on line 187
Может быть, из-за этой ошибки ваша среда погибнет от этого.
Однако это похоже на ошибку.
Кроме того, я нашел обходной путь, используя решение, найденное в этом Github Issue.
Это не красиво, но это решение.
Редактировать: Патч для этой проблемы был выпущен. Посмотреть здесь
Других решений пока нет …