Pull to refresh

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

Yii *
Sandbox
Доброго времени суток, коллеги!

Недавно команда разработчиков фреймворка Yii 2 порадовала сообщество нативной дебаг-панелью. Важная особенность этого дебаггера в том, что он пишет историю, и дает возможность исследовать отладочную информацию от каждого запроса к yii-проекту. Это делает простым и приятным занятием отладку ajax-запросов, страниц с редиректами, рендеринг графических изображений и прочее.

Внешний вид и принцип использования одной из ранних версий дебаггера в Yii 2 можно увидеть на видеоролике Александра Макарова (SamDark):



Вдохновленный этим замечательным инструментом, я решил портировать его на Yii 1.1. Код, который в итоге получился, можно посмотреть на github.


Внешний вид дебаггера (в картинках)
Минимизированная панель с суммарной информацией на странице yii-проекта. Все блоки на панели кликабельны, ссылки ведут на страницы для детального просмотра отладочных данных.



Страница Configuration.



Выпадающий список со ссылками на 10 последних запросов.



Страница «Request».



Страница «Logs».



Страница «Database» со списком sql-запросов и информацией по подключениям к БД.



История.




Установка и настройка



Чтобы установить дебаггер в свой проект необходимо скачать исходники и дополнить конфиг проекта необходимым минимумом настроек:

return array(
    'preload' => array(
        'debug',
    ),
    'components' => array(
        'debug' => array(
            'class' => 'ext.yii2-debug.Yii2Debug',
        ),
        'db' => array(
            'enableProfiling' => true,
            'enableParamLogging' => true,
        ),
    ),
);


Для более тонкой настройки компонента Yii2Debug доступны следующие свойства:

  • enabled — включение/выключение дебаггера.
  • allowedIPs — список ip, которым разрешен доступ к дебаггеру.
  • logPath — путь для записи логов.
  • historySize — максимальное кол-во записанных логов. Более ранние логи будут удаляться.
  • highlightCode — подсветка кода. Подсвечиваются sql-запросы и php-массивы данных.
  • panels — массив подключенных к дебаггеру панелей.
  • moduleId — ID модуля для просмотра ранее сохраненных данных.


В заключение хотелось бы добавить что, дебаггер можно дополнять своими панелями с отладочными данными. Для каждой такой панели необходимо: разработать свой класс унаследовав его от Yii2DebugPanel, и добавить его в массив panels компонента Yii2Debug.

Спасибо за внимание. Надеюсь это расширение сделает вашу работу с Yii еще более комфортной. Буду благодарен за багрепорты и толковые идеи. Отдельное спасибо команде разработчиков Yii за их труды и их светлые головы.

Код на github
Обсуждение на yiiframework.ru
Код нативного дебаггера Yii 2 на github
Tags:
Hubs:
Total votes 36: ↑33 and ↓3 +30
Views 17K
Comments Comments 15