Дебаггер для Yii 1.1 портированный из Yii 2
Дебаггер для Yii 1.1 портированный из Yii 2
Всем привет!
Портировал код дебаггера из Yii 2 на Yii 1.1.
Отличительная особенность этого дебаггера в том, что он пишет историю, и дает возможность рассматривать отладочную информацию от каждого обращения к yii-проекту. То-есть можно дебажить ответы на ajax-запросы, и - post-запросы с редиректами.
Дебагер можно расширять своими панелями.
Буду рад если кому-то пригодится, и заранее благодарен за багрепорты.
Код на github
Видео-обзор оригинального yii2-дебаггера от SamDark-а
Портировал код дебаггера из Yii 2 на Yii 1.1.
Отличительная особенность этого дебаггера в том, что он пишет историю, и дает возможность рассматривать отладочную информацию от каждого обращения к yii-проекту. То-есть можно дебажить ответы на ajax-запросы, и - post-запросы с редиректами.
Дебагер можно расширять своими панелями.
Буду рад если кому-то пригодится, и заранее благодарен за багрепорты.
Код на github
Видео-обзор оригинального yii2-дебаггера от SamDark-а
Последний раз редактировалось KiTE 2013.08.21, 15:53, всего редактировалось 1 раз.
Re: Дебаггер для Yii 1.1 портированный из Yii 2
отлично, потестируем
П.С. еще бы composer
П.С. еще бы composer
Re: Дебаггер для Yii 1.1 портированный из Yii 2
composer будет, пока руки не дошли
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Спасибо за работу, замечательная штука. Раньше пользовались YiiDebugToolbar, но его пришлось адаптировать и он немного подглючивал. А тут прям красота.
Ищем yii-разработчиков на фриланс
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Спасибо за отзыв.
YiiDebugToolbar - отличное расширение. Я тоже ним пользуюсь. Некоторые идеи для Yii2Debug позаимствовал именно из него. Например: подсветка sql-синтаксиса. Подстановка параметров в sql-запросы, чтобы без лишних телодвижений можно было скопировать запрос и проверить его выполнение сторонними средствами.
Но, YiiDebugToolbar не ведет запись истории, и умеет показывать инфу только для текущей страницы. Это не дает возможности мониторить ответы с редиректами, ajax, рендер картинок и прочее.
История - та самая киллер-фича, которой выделился дебаггер из Yii2.
YiiDebugToolbar - отличное расширение. Я тоже ним пользуюсь. Некоторые идеи для Yii2Debug позаимствовал именно из него. Например: подсветка sql-синтаксиса. Подстановка параметров в sql-запросы, чтобы без лишних телодвижений можно было скопировать запрос и проверить его выполнение сторонними средствами.
Но, YiiDebugToolbar не ведет запись истории, и умеет показывать инфу только для текущей страницы. Это не дает возможности мониторить ответы с редиректами, ajax, рендер картинок и прочее.
История - та самая киллер-фича, которой выделился дебаггер из Yii2.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Дебаггер для Yii 1.1 портированный из Yii 2
По дебаггеру в Yii2 есть пожелания?
Нравится Yii? Давайте сделаем его лучше!.
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Единственное что не нашел, это подробной информации о view/layout. В YiiDebugToolbar есть такое и достаточно часто используют верстальщики, чтобы найти где верстать.Sam Dark писал(а):По дебаггеру в Yii2 есть пожелания?
Ищем yii-разработчиков на фриланс
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Дебаггер для Yii 1.1 портированный из Yii 2
То есть на панельке указывать, какой view отрендерился?
Нравится Yii? Давайте сделаем его лучше!.
Re: Дебаггер для Yii 1.1 портированный из Yii 2
В идеале каскад view-ов которые рендерятся и данные которые в них попадают.Sam Dark писал(а):То есть на панельке указывать, какой view отрендерился?
По модулю просмотра сохраненной в json-логах информации:
Неплохо было бы иметь живой поиск по таблицам данных. Что-то из разряда input-полей под заголовком каждой колонки. Набираешь поисковый текст и таблица фильтруется. Актуально для длинных списков с логами и длинных списков с запросами.
Еще было бы здорово иметь возможность скачать json-файл по открытому в модуле тегу через веб-интерфейс. Сейчас кол-во логов ограничено через \yii\debug\Module::$historySize, старые логи удаляются, и можно потерять потенциально ценную информацию. Или реализовать систему отметок "избранное" чтобы удалялись только не помеченные логи.
А, в целом, дебаггер в yii2 - замечательная идея и отличная реализация, большое спасибо!
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Да, именно каскад. И виджетами страницы.KiTE писал(а):В идеале каскад view-ов которые рендерятся и данные которые в них попадают.Sam Dark писал(а):То есть на панельке указывать, какой view отрендерился?
Вот как например это сделано в YiiDebugToolbar. А вот что выводится по каждому из представлений.
Ищем yii-разработчиков на фриланс
Re: Дебаггер для Yii 1.1 портированный из Yii 2
не получается подключить. Скачал через композер в \yii\vendor\zhuravljov\yii2-debug\
так выглядит конфиг (локальная часть конфига, мержащаяся с основным. vendor - алиас для yii/vendor. Чуть выше подключается YiiDebugToolbar и он работает:
так выглядит конфиг (локальная часть конфига, мержащаяся с основным. vendor - алиас для yii/vendor. Чуть выше подключается YiiDebugToolbar и он работает:
Код: Выделить всё
array(
'preload' => array( 'debug' ),
'components' => array(
'db' => array(
'connectionString' => 'mysql:host=localhost;dbname=yii',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'tablePrefix' => '',
'enableProfiling' => true,
'enableParamLogging' => true,
),
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
/*array(
'class'=>'vendor.malyshev.yii-debug-toolbar.yii-debug-toolbar.YiiDebugToolbarRoute',
'ipFilters' => array( '127.0.0.1', '::1', '176.65.106.67', '37.72.75.62' )
),*/
),
),
'debug' => array(
'class' => 'vendor.zhuravljov.yii2-debug.Yii2Debug',
),
)
)
Re: Дебаггер для Yii 1.1 портированный из Yii 2
В конфиге все правильно.
Какие версии yii и php?
Выводится какая-то ошибка? Если да, то какая? Трейс ошибки?
Что в runtime/debug?
Какие версии yii и php?
Выводится какая-то ошибка? Если да, то какая? Трейс ошибки?
Что в runtime/debug?
Re: Дебаггер для Yii 1.1 портированный из Yii 2
yii 1.1.14
php 5.3.8
Ошибок нет
в рантайме 521bce7ecca82.json и index.json - внутри что-то похожее на результаты работы тулбара, но самого тулбара на сайте нет.
Upd.: покопался в исходниках и понял, что нужно прописать ip:
наверное этот момент нужно прописать в README на github.
PS Спасибо за порт!
php 5.3.8
Ошибок нет
в рантайме 521bce7ecca82.json и index.json - внутри что-то похожее на результаты работы тулбара, но самого тулбара на сайте нет.
Upd.: покопался в исходниках и понял, что нужно прописать ip:
Код: Выделить всё
'debug' => array(
'class' => 'vendor.zhuravljov.yii2-debug.Yii2Debug',
'allowedIPs' => array( '127.0.0.1', '::1', '176.65.106.67', '37.72.75.62' )
)
PS Спасибо за порт!
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Что-то не так у вас по 37.72.75.62:zelenin писал(а):yii 1.1.14
php 5.3.8
Ошибок нет
в рантайме 521bce7ecca82.json и index.json - внутри что-то похожее на результаты работы тулбара, но самого тулбара на сайте нет.
Upd.: покопался в исходниках и понял, что нужно прописать ip:наверное этот момент нужно прописать в README на github.Код: Выделить всё
'debug' => array( 'class' => 'vendor.zhuravljov.yii2-debug.Yii2Debug', 'allowedIPs' => array( '127.0.0.1', '::1', '176.65.106.67', '37.72.75.62' ) )
PS Спасибо за порт!
( ! ) Parse error: syntax error, unexpected $end in H:\freelance\xampp\htdocs\index.php on line 1
)))
Re: Дебаггер для Yii 1.1 портированный из Yii 2
надо было перенос сделать после <?phpЧто-то не так у вас по 37.72.75.62:
( ! ) Parse error: syntax error, unexpected $end in H:\freelance\xampp\htdocs\index.php on line 1
это заглушка просто
Re: Дебаггер для Yii 1.1 портированный из Yii 2
поставил, пробую, но сразу возник вопрос - вернуться на экран где был нажат дебаггер можно еще кроме как "назад" в истории браузера? если только так, то не очень удобно: нажал дебаг, покликал по всяким отчетам и чтобы выйти из дебага и вернуться опять к сайту нужно нажать кучу раз "назад". Может я упустил какую кнопку?
Re: Дебаггер для Yii 1.1 портированный из Yii 2
если этого нельзя, то нужно обязательно что-то типа returnUrl добавить в кнопку вызова дебагера и чтобы из дебагера можно было бы вернуться на этот экран. А еще лучше чтобы все это было по AJAX, в модальном окне например и тогда вообще такого геммороя нет - закрыл окно и все - ты опять точно в том же состоянии сайта в котором был до нажатия дебага
Re: Дебаггер для Yii 1.1 портированный из Yii 2
Та страница для которой открыт просмотр отладочной информации:
Re: Дебаггер для Yii 1.1 портированный из Yii 2
и каким образом это возвращает на то состояние которое было до вызова дебага? толку от такого перехода - ноль. Был запрос POST, был AJAX - все мы потеряли состояние, нужно опять прокликать все, чтобы получить этот экран и нажав дебаг опять потеряем состояние.
p.s.: нет, правда, вы сами используете? у вас нет ajax? у вас нет post? у вас нет javascript в конце-концов? если речь про простую страничку, то - да, подходит. В случае же использования js, ajax во всю, то такой подход не подходит - состояние до нажатия не восстанавливается.
или я упустил что-то? по-идее просто показывать этот дебаг нужно в модальном окне на весь экран или в отдельной вкладке, но без ajax.
p.p.s.: пока единственное решение для себя - это открывать в отдельной вкладке, но лучше сделать, чтобы такое поведение было по-умолчанию, т.к. сейчас часто забывается и состояние теряется из-за открытия в этом же окне.
p.s.: нет, правда, вы сами используете? у вас нет ajax? у вас нет post? у вас нет javascript в конце-концов? если речь про простую страничку, то - да, подходит. В случае же использования js, ajax во всю, то такой подход не подходит - состояние до нажатия не восстанавливается.
или я упустил что-то? по-идее просто показывать этот дебаг нужно в модальном окне на весь экран или в отдельной вкладке, но без ajax.
p.p.s.: пока единственное решение для себя - это открывать в отдельной вкладке, но лучше сделать, чтобы такое поведение было по-умолчанию, т.к. сейчас часто забывается и состояние теряется из-за открытия в этом же окне.