Доброе время суток хабравчане.
Сегодня я хотел бы рассказать об одном замечательном расширении yii-debug-toolbar от Сергея Малышева.
Это расширение добавляет очень симпатичную и удобную дебаг панель.
yii-debug-toolbar имеет 5 вкладок:

Итак, что бы установить такую панель на свой тестовый сервер Вам понадобиться скачать исходник последней верссии отсюда www.yiiframework.com/extension/yii-debug-toolbar. Распаковываем архив в папку /protected/extensions. Затем в конфиге прописываем в компонент log
После чего, справа вверху должен появиться синий жук (аля фаербаг). Если он у Вас есть, значит Вы все сделали правильно.
Все параметры компонент наследует от CLogRouter. Но есть у него и один свой параметр: ipFilters. Это массив разрешённых IP адресов. Если Вы не хотите случайно выложить копию с дебаг баром на продакшн, то впишите туда свой IP адрес, и панель будет доступна только с Вашего компьютера.
Параметры наследуемые от CLogRouter:
Автор расширения позаботился о разработчиках, использующих его продукт и сделал возможность безболезненно добавлять свои табы. Давайте попробуем создать панель с названием «Test». Для этого в папку /protected/extensions/yii-debug-toolbar/panels нужно добавить новый файл YiiDebugToolbarPanelTest.php и создать в нем новый класс YiiDebugToolbarPanelTest, который наследуется от YiiDebugToolbarPanel. Этот класс должен реализовывать 5 методов:
И добавить таб в свойство $_panels класса YiiDebugToolbar (/protected/extensions/yii-debug-toolbar/YiiDebugToolbar.php)
Результат:

Если кому-то интересно, в следующей статье могу рассказать как написать свой логгер.
С уважением, Роман.
Сегодня я хотел бы рассказать об одном замечательном расширении yii-debug-toolbar от Сергея Малышева.
Вкратце
Это расширение добавляет очень симпатичную и удобную дебаг панель.
yii-debug-toolbar имеет 5 вкладок:
- Server: отображает информацию из phpinfo();
- Time: отображает время загрузки страницы, размер затраченной памяти и размер сессии;
- Globals: отображает дампы глобальных переменных ($_SERVER, $_COOKIE, $_SESSION, $_POST, $_GET, $_FILES);
- Settings: отображает конфиг приложения (все параметры, компоненты и глобальные настройки);
- SQL: отображает информацию о SQL сервере и лог по SQL запросам (сам запрос и время исполнения);
- Logging: отображает лог информацию (отправленную через Yii::log).

Установка
Итак, что бы установить такую панель на свой тестовый сервер Вам понадобиться скачать исходник последней верссии отсюда www.yiiframework.com/extension/yii-debug-toolbar. Распаковываем архив в папку /protected/extensions. Затем в конфиге прописываем в компонент log
#...
'log'=>array(
'class'=>'CLogRouter',
'enabled'=>YII_DEBUG,
'routes'=>array(
#...
array(
'class'=>'CFileLogRoute',
'levels'=>'error, warning',
),
array(
'class'=>'application.extensions.yii-debug-toolbar.YiiDebugToolbarRoute',
'ipFilters'=>array('127.0.0.1','192.168.1.215'),
),
),
),
#...
После чего, справа вверху должен появиться синий жук (аля фаербаг). Если он у Вас есть, значит Вы все сделали правильно.
Настройка
Все параметры компонент наследует от CLogRouter. Но есть у него и один свой параметр: ipFilters. Это массив разрешённых IP адресов. Если Вы не хотите случайно выложить копию с дебаг баром на продакшн, то впишите туда свой IP адрес, и панель будет доступна только с Вашего компьютера.
Параметры наследуемые от CLogRouter:
- bool enabled: если false — то дебаг отключен (я обычно ставлю туда константу YII_DEBUG, тогда можно быстро и глобально отключить дебаг);
- string levels: список уровней логирования через запятую или пробел;
- string categories: список категорий логирования через запятую или пробел;
- array filter: дополнительные фильтры (например CLogFilter);
- array logs: логи, собранные по ходу выполнения программы.
На сладкое. Как создать свою панель в yii-debug-toolbar?
Автор расширения позаботился о разработчиках, использующих его продукт и сделал возможность безболезненно добавлять свои табы. Давайте попробуем создать панель с названием «Test». Для этого в папку /protected/extensions/yii-debug-toolbar/panels нужно добавить новый файл YiiDebugToolbarPanelTest.php и создать в нем новый класс YiiDebugToolbarPanelTest, который наследуется от YiiDebugToolbarPanel. Этот класс должен реализовывать 5 методов:
- getMenuTitle: метод возвращает название таба в боковой панели;
- getMenuSubTitle: метод возвращает описание таба в боковой панели;
- getTitle: метод возвращает название таба непосредственно внутри таба (наверху, на желтой полосе);
- getSubTitle: метод возвращает описание таба непосредственно внутри таба (наверху, на желтой полосе);
- run: отображает контент таба.
И добавить таб в свойство $_panels класса YiiDebugToolbar (/protected/extensions/yii-debug-toolbar/YiiDebugToolbar.php)
class YiiDebugToolbarPanelTest extends YiiDebugToolbarPanel{
function getMenuTitle(){ return 'Test'; }
function getMenuSubTitle(){ return 'subtest'; }
function getTitle(){ return 'TEST v1.0'; }
function getSubTitle(){ return 'Hello Vasya'; }
function run(){
echo '<h4>'.self::getSubTitle().'</h4>';
echo rand();
}
}
Результат:

Если кому-то интересно, в следующей статье могу рассказать как написать свой логгер.
С уважением, Роман.