Проблема:
Если в контроллере Yii фреймворка второй версии, написать следующий код:
[code]
$notExists->anyMethod();
[/code]
То результатом выполнения будет не вывод исключения (Exception), а пустая страница.
Изучив данную проблему в дебагере, я пришел к выводу, что проблема в коде фреймворка, а именно в файле: \yii\base\ErrorHandler
[code]
public function handleError($code, $message, $file, $line)
{
if (error_reporting() & $code) {
// -- тут был некоторый код
throw $exception; // в этом месте выполнение скрипта останавливается
[/code]
Чтобы получить корректный вывод данной ошибки в Yii2, нужно заменить:
[code] throw $exception; [/code] на [code] $this->handleException($exception); [/code] Данный код вызывает исключение: PHP Notice – Undefined variable: notExists. Если аналогичное исключение вызвать другим кодом, например: [code] $i = $notExists; [/code] то фреймворк корректно отображает страницу с ошибкой и без модификаций.
Как оказалось, проблема была в версии PHP, и после установки свежей версии (5.4.27) всё заработало. Обновите PHP, если столкнулись с этой, или аналогичной проблемой.
03.04.2014