ZFDebug - debug панель для Zend Framework
Опубликовано: 18.06.2009
|
Сегодня попробовал в работе ZFDebug - панель для Zend Framework, содержащая различную отладочную информацию. Впечатления положительные, поэтому расскажу подробнее, возможно не все еще знают про эту панель.
Панель ZFDebug выполнена в виде плагина для Front контроллера, и выглядит как небольшая компактная панель отображающаяся внизу страницы. Что не маловажно, решение кроссбраузерно. В отличие например от решения для firebug о котором я писал раньше.
Возможности
Поддерживает следующие возможности:
- Cache - информация о Zend_Cache и акселераторе APC;
- Database - список всех запросов к базе данных с временем их выполнения;
- Exception - информация об ошибках и исключениях;
- File - информация о подключаемых файлах, количество, размер;
- Html - информация о подключенных таблицах стилей и javascript файлов. Ссылка на валидацию;
- Memory - максимальный размер использованной памяти, памяти использованной в контроллере, а также пользовательские замеры;
- Registry - содержимое Zend_Registry;
- Time - информация о времени выполнения страниц, контроллеров, пользовательские замеры.;
- Variables - информация о переменных вида, данные запроса, содержимое массивов $COOKIE и $POST;
Установка
Скачайте архив http://code.google.com/p/zfdebug/downloads/list
Разместите папку в каталоге библиотек на том же уровне что и папка Zend
Панель для работы использует библиотеку JQuery, по умолчанию будет произведена попытка ее подключения по адресу http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
Если у вас версия ZF 1.8 вставьте следующий код в ваш bootstrap файл:
protected function _initZFDebug()
{
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('ZFDebug');
$options = array(
'plugins' => array(
'Variables',
'File' => array('base_path' => '/путь/к/проекту'),
'Memory',
'Time',
'Registry',
'Exception',
'Html',
)
);
// Настройка плагина для адаптера базы данных
if ($this->hasPluginResource('db')) {
$this->bootstrap('db');
$db = $this->getPluginResource('db')->getDbAdapter();
$options['plugins']['Database']['adapter'] = $db;
}
// Настройка плагина для кеша
if ($this->hasPluginResource('cache')) {
$this->bootstrap('cache');
$cache = $this-getPluginResource('cache')->getDbAdapter();
$options['plugins']['Cache']['backend'] = $cache->getBackend();
}
$debug = new ZFDebug_Controller_Plugin_Debug($options);
$this->bootstrap('frontController');
$frontController = $this->getResource('frontController');
$frontController->registerPlugin($debug);
}
Если у вас версия ZF ниже 1.8 используйте следующий код:
// Оставьте ключ 'Database' пустым, произойдет попытка получить адаптер по умолчанию из Zend_Db_Table
$options = array(
// 'jquery_path' => 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js',
'plugins' => array('Variables',
'Html',
'Database' => array('adapter' => array('standard' => $db)),
'File' => array('base_path' => 'path/to/application/root'),
'Memory',
'Time',
'Registry',
'Cache' => array('backend' => $cache->getBackend()),
'Exception')
);
$debug = new ZFDebug_Controller_Plugin_Debug($options);
$frontController = Zend_Controller_Front::getInstance();
$frontController->registerPlugin($debug);
Переменная $options может быть массивом или объектом Zend_Config со следующими ключами
- z-index: Расположение панели (255, top)
- image_path: Путь к иконкам для панели (если передан null для формирования изображений используется base64 кодирование)
- jquery_path: Путь к JQuery
- plugins: Список подключаемых плагинов.
У меня все завелось довольно быстро.
Кстати в скачиваемом архиве есть еще плагин Auth, но он, видимо, еще не доведен до нужной кондиции поэтому не работает.
При желании можно расширить панель своими плагинами.
И напоследок, несколько скриншотов панели в действии:
- Спрашивать почему у вас не работает код, для этого есть тема форума закрепленная за статьей.
- Спрашивать как реализовать ту или иную функциональность, для этого необходимо создать свою тему на форуме.
Комментарии для того чтобы: высказать свое аргументированное мнение о статье, указать какие участки вызывают непонимание, что нужно исправить/улучшить, просто сказать спасибо.
Комментарии имеют древовидную структуру.
Если вы хотите ответить на определенный комментарий - нажмите на ссылку "Ответить" возле этого комментария.