Giter VIP home page Giter VIP logo

yii2-debug's Introduction

yii2-debug

Отладочная панель для Yii 1.1 портированная из Yii 2.

Использование

Необходимо скопировать исходники в /protected/extensions и дополнить конфиг своего проекта следующими настройками:

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

Доступно обновление через composer.

Настройка

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

  • enabled - включение/выключение дебаггера.
  • allowedIPs - список ip и масок, которым разрешен доступ к панели. По умолчанию array('127.0.0.1', '::1').
  • accessExpression - дополнительное условие доступа к панели.
  • logPath - путь для записи логов. По умолчанию /runtime/debug.
  • historySize - максимальное кол-во записанных логов. Более ранние логи будут удаляться.
  • highlightCode - подсветка кода. Подсвечиваются sql-запросы и php-массивы данных. Также параметр highlightCode можно настраивать для каждой панели отдельно.
  • moduleId - ID модуля для просмотра ранее сохраненных данных. По умолчанию debug.
  • internalUrls - использование внутренних роутов для urlManager
  • panels - список подключенных к отладчику панелей.

Каждую подключаемую к отладчику панель так-же можно конфигурировать. Например:

'debug' => array(
    'class' => 'ext.yii2-debug.Yii2Debug',
    'panels' => array(
        'db' => array(
            // Отключить подсветку SQL
            'highlightCode' => false,
            // Отключить подстановку параметров в SQL-запрос
            'insertParamValues' => false,
        ),
    ),
),

Для каждой панели доступен callback-параметр filterData. Он дает возможность обработать массив данных перед сохранением этих данных в лог. Это может быть полезно в том случае, когда в данных проходит какая-то секретная информация, и ее нужно каким-то образом экранировать либо вообще изъять из массива.

Пример:

'debug' => array(
    'class' => 'ext.yii2-debug.Yii2Debug',
    'panels' => array(
        'db' => array(
            'filterData' => function($data){
                // Обработка
                return $data;
            }
        ),
    ),
),

Будьте осторожны с изменением структуры данных. Это может стать причиной ошибок при просмотре.

Подключение собственных панелей

Необходимо разработать свой класс унаследовав его от Yii2DebugPanel, например:

class MyTestPanel extends Yii2DebugPanel
{
    // Имя вашей панели, выводится в меню отладчика
    public function getName()
    {
        return 'Name';
    }

    // Функция должна возвращать HTML для вывода в тулбар
    // Данные доступны через свойство $this->data
    public function getSummary()
    {
        return '';
    }

    // Функция должна вернуть HTML с детальной информацией
    // Данные доступны через свойство $this->data
    public function getDetail()
    {
        return '';
    }

    // Функция должна вернуть массив данных для сохранения в лог
    public function save()
    {
        return array();
    }
}

И подключить его в конфиг:

'panels' => array(
    'test' => array(
        'class' => 'path.to.panel.MyTestPanel',
        // ...
    ),
),

yii2-debug's People

Contributors

chuprik avatar evgen-d avatar zhuravljov avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.