Вывод ошибок в Yii 1.1.15
-
- Сообщения: 6
- Зарегистрирован: 2013.09.24, 10:59
Вывод ошибок в Yii 1.1.15
Всем доброе время суток.
После обновления до 1.1.15 перестал работать девелоперский режим вывода ошибок. Т.е. независимо от установленной константы YII_DEBUG все ошибки выводятся через echo (как будь-то приложение работает в режиме "production").
Подскажите, куда копать, чтобы вернуть такой же вывод ошибок, как и в 1.1.14?
Заранее благодарен.
После обновления до 1.1.15 перестал работать девелоперский режим вывода ошибок. Т.е. независимо от установленной константы YII_DEBUG все ошибки выводятся через echo (как будь-то приложение работает в режиме "production").
Подскажите, куда копать, чтобы вернуть такой же вывод ошибок, как и в 1.1.14?
Заранее благодарен.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Вывод ошибок в Yii 1.1.15
Если откатить директорию фреймворка до 1.1.14 точно восстанавливается всё?
Нравится Yii? Давайте сделаем его лучше!.
-
- Сообщения: 1268
- Зарегистрирован: 2013.07.17, 17:37
Re: Вывод ошибок в Yii 1.1.15
YII_DEBUG определен где то выше, там где вы думаете его устанавливаете - проверьть возможно он уже установлен в тру
-
- Сообщения: 6
- Зарегистрирован: 2013.09.24, 10:59
Re: Вывод ошибок в Yii 1.1.15
Да. В index.php проекта прописываю директорию фреймворка с версией 1.1.14 - все работает красиво. Меняю на путь к 1.1.15 - просто вывод текста ошибки.Sam Dark писал(а):Если откатить директорию фреймворка до 1.1.14 точно восстанавливается всё?
Единственное различие, которое нашел, это в файле CErrorHandler.php
v.1.1.15
Код: Выделить всё
protected function handleError($event)
{
//skipped
$app=Yii::app();
if($app instanceof CWebApplication)
{
//skipped
if(!headers_sent())
header("HTTP/1.0 500 Internal Server Error");
$this->renderError();
}
else
$app->displayError($event->code,$event->message,$event->file,$event->line);
}
Код: Выделить всё
protected function handleError($event)
{
//skipped
$app=Yii::app();
if($app instanceof CWebApplication)
{
//skipped
if(!headers_sent())
header("HTTP/1.0 500 Internal Server Error");
if($this->isAjaxRequest())
$app->displayError($event->code,$event->message,$event->file,$event->line);
elseif(YII_DEBUG)
$this->render('exception',$data);
else
$this->render('error',$data);
}
else
$app->displayError($event->code,$event->message,$event->file,$event->line);
}
Да.Sam Dark писал(а):1.1.15 — это master из git?
Последний раз редактировалось DragonBlack 2013.09.24, 13:38, всего редактировалось 1 раз.
-
- Сообщения: 6
- Зарегистрирован: 2013.09.24, 10:59
Re: Вывод ошибок в Yii 1.1.15
В том-то и дело, что в настройках и файлах проекта ничего не трогаю (только путь к папке фреймворка меняю) и в результате по-разному работает вывод ошибокlancedevnull писал(а):YII_DEBUG определен где то выше, там где вы думаете его устанавливаете - проверьть возможно он уже установлен в тру
-
- Сообщения: 1268
- Зарегистрирован: 2013.07.17, 17:37
Re: Вывод ошибок в Yii 1.1.15
в коде прописано про дебаг, только теперь в методе renderError
https://github.com/yiisoft/yii/blob/mas ... r.php#L345
https://github.com/yiisoft/yii/blob/mas ... r.php#L345
-
- Сообщения: 1268
- Зарегистрирован: 2013.07.17, 17:37
Re: Вывод ошибок в Yii 1.1.15
не понятно про еррор экшн, если его указать, то получается не будет выхлопа об ошибке? или в еррор экшене вывод свой? иначе рекурсией попахивает
-
- Сообщения: 6
- Зарегистрирован: 2013.09.24, 10:59
Re: Вывод ошибок в Yii 1.1.15
Да, спасибо, я уже нашел. Только получается, что если определено действие для отображения ошибок, то настройка YII_DEBUG до лампочки
IMHO YII_DEBUG должна иметь наивысший приоритет, ведь еррор экшн предназначен больше для обработки ошибок на продакшене.
Может имеет смысл дополнить метод проверкой на установленный YII_DEBUG?
Тогда при включенном дебагере будет всегда выполняться else-блок, а на продакшене - то, что прописано в еррор экшене.
IMHO YII_DEBUG должна иметь наивысший приоритет, ведь еррор экшн предназначен больше для обработки ошибок на продакшене.
Может имеет смысл дополнить метод проверкой на установленный YII_DEBUG?
Код: Выделить всё
protected function renderError()
{
if($this->errorAction!==null && !YII_DEBUG)
Yii::app()->runController($this->errorAction);
else
{
$data=$this->getError();
if($this->isAjaxRequest())
Yii::app()->displayError($data['code'],$data['message'],$data['file'],$data['line']);
elseif(YII_DEBUG)
$this->render('exception',$data);
else
$this->render('error',$data);
}
}
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Вывод ошибок в Yii 1.1.15
Похоже, что так... сможете сделать pull request?
Нравится Yii? Давайте сделаем его лучше!.
-
- Сообщения: 6
- Зарегистрирован: 2013.09.24, 10:59
Re: Вывод ошибок в Yii 1.1.15
Если скажете, где об этом прочитать, то смогу. Просто никогда не pull'ил на github
-
- Сообщения: 6
- Зарегистрирован: 2013.09.24, 10:59
Re: Вывод ошибок в Yii 1.1.15
Добавил pull request
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Вывод ошибок в Yii 1.1.15
Спасибо. Назначил на 1.1.15. Перед вливанием в основную ветку погоняю ещё...
Нравится Yii? Давайте сделаем его лучше!.
Re: Вывод ошибок в Yii 1.1.15
1.1.16
Ошибки php вываливаются через echo.
СException работают как надо, синтаксические ошибки тоже видно, все остальное простым echo.
Сейчас схватил ошибку инклуда
Понять где инклуд пока не смог. Как вывести ошибку обычным способом тоже не разобрался. Дебаг стоит в тру. Индекс.пхп не правил.
Все ошибки php выводит на сайте, хоть бы файл показывал.
Ошибки php вываливаются через echo.
СException работают как надо, синтаксические ошибки тоже видно, все остальное простым echo.
Сейчас схватил ошибку инклуда
Код: Выделить всё
Главная » Error
Error 500
include(Comment.php): failed to open stream: No such file or directory
Все ошибки php выводит на сайте, хоть бы файл показывал.
Re: Вывод ошибок в Yii 1.1.15
Раскомментировал в конфиге 'CWebLogRoute' понял, что просто тема не изучена. Журнал подробный, получил достаточно сведений об ошибке.