Дебаггер для Yii 1.1 портированный из Yii 2

Выкладываем свои наработки
Аватара пользователя
KiTE
Сообщения: 112
Зарегистрирован: 2012.04.12, 14:47

Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение KiTE »

Всем привет!

Портировал код дебаггера из Yii 2 на Yii 1.1.

Отличительная особенность этого дебаггера в том, что он пишет историю, и дает возможность рассматривать отладочную информацию от каждого обращения к yii-проекту. То-есть можно дебажить ответы на ajax-запросы, и - post-запросы с редиректами.

Дебагер можно расширять своими панелями.

Буду рад если кому-то пригодится, и заранее благодарен за багрепорты.

Код на github
Видео-обзор оригинального yii2-дебаггера от SamDark-а
Последний раз редактировалось KiTE 2013.08.21, 15:53, всего редактировалось 1 раз.
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение anton44eg »

отлично, потестируем
П.С. еще бы composer :)
Аватара пользователя
KiTE
Сообщения: 112
Зарегистрирован: 2012.04.12, 14:47

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение KiTE »

composer будет, пока руки не дошли
mixa
Сообщения: 36
Зарегистрирован: 2012.06.09, 11:57

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение mixa »

Спасибо за работу, замечательная штука. Раньше пользовались YiiDebugToolbar, но его пришлось адаптировать и он немного подглючивал. А тут прям красота.
Ищем yii-разработчиков на фриланс
Аватара пользователя
KiTE
Сообщения: 112
Зарегистрирован: 2012.04.12, 14:47

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение KiTE »

Спасибо за отзыв.
YiiDebugToolbar - отличное расширение. Я тоже ним пользуюсь. Некоторые идеи для Yii2Debug позаимствовал именно из него. Например: подсветка sql-синтаксиса. Подстановка параметров в sql-запросы, чтобы без лишних телодвижений можно было скопировать запрос и проверить его выполнение сторонними средствами.
Но, YiiDebugToolbar не ведет запись истории, и умеет показывать инфу только для текущей страницы. Это не дает возможности мониторить ответы с редиректами, ajax, рендер картинок и прочее.
История - та самая киллер-фича, которой выделился дебаггер из Yii2.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение samdark »

По дебаггеру в Yii2 есть пожелания?
mixa
Сообщения: 36
Зарегистрирован: 2012.06.09, 11:57

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение mixa »

Sam Dark писал(а):По дебаггеру в Yii2 есть пожелания?
Единственное что не нашел, это подробной информации о view/layout. В YiiDebugToolbar есть такое и достаточно часто используют верстальщики, чтобы найти где верстать.
Ищем yii-разработчиков на фриланс
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение samdark »

То есть на панельке указывать, какой view отрендерился?
Аватара пользователя
KiTE
Сообщения: 112
Зарегистрирован: 2012.04.12, 14:47

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение KiTE »

Sam Dark писал(а):То есть на панельке указывать, какой view отрендерился?
В идеале каскад view-ов которые рендерятся и данные которые в них попадают.

По модулю просмотра сохраненной в json-логах информации:

Неплохо было бы иметь живой поиск по таблицам данных. Что-то из разряда input-полей под заголовком каждой колонки. Набираешь поисковый текст и таблица фильтруется. Актуально для длинных списков с логами и длинных списков с запросами.

Еще было бы здорово иметь возможность скачать json-файл по открытому в модуле тегу через веб-интерфейс. Сейчас кол-во логов ограничено через \yii\debug\Module::$historySize, старые логи удаляются, и можно потерять потенциально ценную информацию. Или реализовать систему отметок "избранное" чтобы удалялись только не помеченные логи.

А, в целом, дебаггер в yii2 - замечательная идея и отличная реализация, большое спасибо!
mixa
Сообщения: 36
Зарегистрирован: 2012.06.09, 11:57

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение mixa »

KiTE писал(а):
Sam Dark писал(а):То есть на панельке указывать, какой view отрендерился?
В идеале каскад view-ов которые рендерятся и данные которые в них попадают.
Да, именно каскад. И виджетами страницы.
Вот как например это сделано в YiiDebugToolbar. А вот что выводится по каждому из представлений.
Ищем yii-разработчиков на фриланс
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение zelenin »

не получается подключить. Скачал через композер в \yii\vendor\zhuravljov\yii2-debug\

так выглядит конфиг (локальная часть конфига, мержащаяся с основным. 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',
            ),
        )
    ) 
Аватара пользователя
KiTE
Сообщения: 112
Зарегистрирован: 2012.04.12, 14:47

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение KiTE »

В конфиге все правильно.

Какие версии yii и php?
Выводится какая-то ошибка? Если да, то какая? Трейс ошибки?
Что в runtime/debug?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение zelenin »

yii 1.1.14
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' )
) 
наверное этот момент нужно прописать в README на github.

PS Спасибо за порт!
plandem
Сообщения: 25
Зарегистрирован: 2009.09.03, 02:34

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение plandem »

zelenin писал(а):yii 1.1.14
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' )
)
наверное этот момент нужно прописать в README на github.

PS Спасибо за порт!
Что-то не так у вас по 37.72.75.62:
( ! ) Parse error: syntax error, unexpected $end in H:\freelance\xampp\htdocs\index.php on line 1

:))))
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение zelenin »

Что-то не так у вас по 37.72.75.62:
( ! ) Parse error: syntax error, unexpected $end in H:\freelance\xampp\htdocs\index.php on line 1
надо было перенос сделать после <?php
это заглушка просто :-)
plandem
Сообщения: 25
Зарегистрирован: 2009.09.03, 02:34

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение plandem »

поставил, пробую, но сразу возник вопрос - вернуться на экран где был нажат дебаггер можно еще кроме как "назад" в истории браузера? если только так, то не очень удобно: нажал дебаг, покликал по всяким отчетам и чтобы выйти из дебага и вернуться опять к сайту нужно нажать кучу раз "назад". Может я упустил какую кнопку?
plandem
Сообщения: 25
Зарегистрирован: 2009.09.03, 02:34

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение plandem »

если этого нельзя, то нужно обязательно что-то типа returnUrl добавить в кнопку вызова дебагера и чтобы из дебагера можно было бы вернуться на этот экран. А еще лучше чтобы все это было по AJAX, в модальном окне например и тогда вообще такого геммороя нет - закрыл окно и все - ты опять точно в том же состоянии сайта в котором был до нажатия дебага
Аватара пользователя
KiTE
Сообщения: 112
Зарегистрирован: 2012.04.12, 14:47

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение KiTE »

Та страница для которой открыт просмотр отладочной информации:
17zmt2br8.png
17zmt2br8.png (20.47 КБ) 11184 просмотра
plandem
Сообщения: 25
Зарегистрирован: 2009.09.03, 02:34

Re: Дебаггер для Yii 1.1 портированный из Yii 2

Сообщение plandem »

и каким образом это возвращает на то состояние которое было до вызова дебага? толку от такого перехода - ноль. Был запрос POST, был AJAX - все мы потеряли состояние, нужно опять прокликать все, чтобы получить этот экран и нажав дебаг опять потеряем состояние.

p.s.: нет, правда, вы сами используете? у вас нет ajax? у вас нет post? у вас нет javascript в конце-концов? если речь про простую страничку, то - да, подходит. В случае же использования js, ajax во всю, то такой подход не подходит - состояние до нажатия не восстанавливается.

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

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