Pull to refresh

Расширение yii-debug-toolbar

Reading time 3 min
Views 23K
Доброе время суток хабравчане.

Сегодня я хотел бы рассказать об одном замечательном расширении 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();
	}
}

Результат:


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

С уважением, Роман.
Tags:
Hubs:
+35
Comments 47
Comments Comments 47

Articles