RSS

Обсуждаемые вопросы: Zend Framework,
информационная безопасность, CMF, CSS + HTML,
AJAX, PHP, веб-программирование и многое другое.

 
 
Анатолий Скорняков
2009—2012
Контактная информация
Живу в Белгороде
Сделано у Беликова
Алексей Беликов
 
 

ZFDebug — debug панель для Zend Framework

11 декабря 2009 г, 11:58

zend frameworkСегодня попробовал в работе ZFDebug — панель для Zend Framework, содержащая различную отладочную информацию. Впечатления положительные, поэтому расскажу подробнее, возможно не все еще знают про эту панель.

Панель ZFDebug выполнена в виде плагина для Front контроллера, и выглядит как небольшая компактная панель отображающаяся внизу страницы. Что не маловажно, решение кроссбраузерно.

Автор: Александр Махомет

Возможности

Поддерживает следующие возможности:

  • 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, но он, видимо, еще не доведен до нужной кондиции поэтому не работает.

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

И напоследок, несколько скриншотов панели в действии:

Комментарии

Оставить комментарий