1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zhuyajie-phalcon-debugbar

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Последняя стабильная версия Общее количество загрузок Последняя нестабильная версия Лицензия

Phalcon Debugbar

Интегрирует PHP Debug Bar с Phalcon Framework.

Краткое описание на китайском

Возможности

  1. Захват обычных запросов
  2. Захват AJAX-запросов
  3. Захват цепочки переадресации
  4. Поддержка простого приложения, приложения с несколькими модулями и микросервисов
  5. Сохранение собранной информации: запись в локальный файл, MongoDB или ElasticSearch
  6. Хранение данных по сессии, что удобнее для командной разработки.
  7. Можно отключить внедрение дебаг-панели, после чего открыть новую вкладку браузера и перейти по адресу /_debugbar/open, чтобы просмотреть данные (и это также можно отключить).
  8. Интеграция с Whoops, и дебаг-панель хорошо работает вместе с ним.
  9. Поддерживает Phalcon 1.3.x, 2.x, 3.x, PHP 5.5~7.1### Поддерживаемые собираемые данные
  • MessagesCollector: Собирает пользовательское сообщение, поддерживает скалярные значения, массивы и объекты.
  • TimeDataCollector: Собирает пользовательскую временную метрику.
  • ExceptionsCollector: Добавляет объект исключения в отладочную панель.
  • MemoryCollector: Собирает данные о использовании памяти.
  • QueryCollector: Отслеживает каждое SQL-выражение, измеряет затраченное время на каждое SQL-выражение, показывает результат EXPLAIN каждого SELECT-выражения.
    • Собирает информацию из сервиса db. Только для Phalcon ORM.
  • DoctrineCollector: Отслеживает каждое SQL-выражение в Doctrine, измеряет затраченное время на каждое SQL-выражение.
    • Собирает информацию из сервиса entityManager. Только для Doctrine ORM.
  • RouteCollector: Показывает информацию о маршруте текущего запроса.
    • Собирает информацию из сервиса router.
  • ViewCollector: Показывает все отрендеренные шаблоны, измеряет затраченное время на каждый шаблон, показывает все переменные шаблонов.
    • Собирает информацию из сервиса view.
  • PhalconRequestCollector: Показывает заголовки запроса, куки, серверные переменные, заголовки ответа, параметры запроса, данные формы, сырое тело запроса.
    • Собирает информацию из сервиса request.
  • ConfigCollector: Показывает данные из сервиса конфигурации.
    • Собирает информацию из сервиса config.
  • SessionCollector: Показывает данные сессии.
    • Собирает информацию из сервиса session.- SwiftMailCollector: Информация о почтовом отправлении
    • собирает информацию из сервиса mail.
  • LogsCollectors: Показывает логи текущего запроса. Поддерживает Phalcon\Logger и Monolog
    • собирает информацию из сервиса log.
  • CacheCollectors: Показывает сводку кэша (сохранено, получено, увеличено, уменьшено, ошибки) и детали каждой операции кэширования.
    • собирает информацию из сервиса cache. ## Быстрый старт### composer
  • установка

    php composer.phar require --dev snowair/phalcon-debugbar
  • обновление

    php composer.phar update snowair/phalcon-debugbar

Изменение файла index.php

  1. Установите экземпляр вашего приложения в DI:

    $application = new Phalcon\Mvc\Application($di); // Важно: параметр $di не может быть игнорирован. Для микросервиса: new Phalcon\Mvc\Micro($di);
    $di['app'] = $application; // Важно
  2. Перед обработкой приложения, зарегистрируйте и запустите провайдер отладочного бара.

    (new Snowair\Debugbar\ServiceProvider())->start();
    // после старта отладочного бара, вы можете ничего не делать, кроме как обрабатывать ваше приложение прямо сейчас.
    echo $application->handle()->getContent();
  3. Необязательно использовать Whoops, модифицируйте файл index.php, добавив следующий код после метода start() сервиса отладочного бара.

    (new \Snowair\Debugbar\Whoops\WhoopsServiceProvider($di));

Изменение кода ACL

Пример для INVO:

public function beforeDispatch(Event $event, Dispatcher $dispatcher)
{
    $auth = $this->session->get('auth');
    if (!$auth){
        $role = 'Guests';
    } else {
        $role = 'Users';
    }

    $controller = $dispatcher->getControllerName();
    $action = $dispatcher->getActionName();

    /* Начало отладочного бара */
    $ns = $dispatcher->getNamespaceName();
    if ($ns == 'Snowair\\Debugbar\\Controllers') {
        return true;
    }
    /* Конец отладочного бара */

    $acl = $this->getAcl();
    $allowed = $acl->isAllowed($role, $controller, $action);
    if ($allowed != Acl::ALLOW) {
        $dispatcher->forward(array(
            'controller' => 'errors',
            'action'     => 'show4i1'
        ));
        $this->session->destroy();
        return false;
    }
}
```### Сохранение данных

Для драйвера **файла**, по умолчанию директория для хранения данных отладочного бара — это `Runtime/phalcon`. Если она не существует, она будет создана автоматически. Вы можете изменить её путём переопределения конфигурации.

Для драйвера **mongodb**, вам необходимо установить расширение **mongodb** и установить phplib: `composer require mongodb/mongodb`.

Для драйвера **elastic**, вам необходимо установить phplib: `composer require elasticsearch/elasticsearch:some-version`.

### О базовой URI

Обратите внимание на конфигурацию **baseUri** вашего проекта, вы **обязаны** установить правильную baseUri для вашего сервиса URI.

Если вы используете Apache, вам следует включить модуль Rewrite и иметь файл `.htaccess` в директории baseUri.

Если вы используете Nginx, вам следует включить модуль Rewrite и отредактировать блок location конфигурации сервера следующим образом:

location @rewrite { # замените 'baseuri' вашей реальной baseUri rewrite ^/baseuri/(.*)$ /baseuri/index.php?_url=/$1; }


## Дополнительно

### Используйте ваш конфиг

Скопируйте `config/debugbar.php` в ваш каталог конфигураций, и измените любые настройки, которые вам нужны. Затем используйте свой файл конфигурации Debugbar следующим образом:

```php
(new Snowair\Debugbar\ServiceProvider('путь_к_вашему_файлу_конфигурации_debugbar'))->start();

Отправка пользовательских сообщений в Debugbar```php

\PhalconDebug::startMeasure('start-1', 'сколько времени'); // startMeasure(идентификатор_остановки_меры, метка) \PhalconDebug::addMeasurePoint('начало'); // измеряет затраченное время с последней точки измерения до настоящего момента. \PhalconDebug::addMessage('это сообщение', 'метка'); // добавляет сообщение с помощью пользовательской метки. \PhalconDebug::info($var1, $var2, $var3, ...); // добавляет много сообщений за один раз. Смотрите PSR-3 для других методов названий (debug, notice, warning, error, ...). \PhalconDebug::addMessageIfTrue('1 == "1"', 1 == '1', 'метка_пользователя'); // добавляет сообщение только если второй параметр истинен \PhalconDebug::addMessageIfTrue('не будет показано', 1 == '0'); \PhalconDebug::addMessageIfFalse('1 != "0"', 1 == '0'); // добавляет сообщение только если второй параметр ложен \PhalconDebug::addMessageIfNull('условие является null', Null); // добавляет сообщение только если второй параметр является null \PhalconDebug::addMessageIfEmpty('условие пустое', $условие); // добавляет сообщение только если второй параметр пустой \PhalconDebug::addMessageIfNotEmpty('условие не пустое', $условие = [1]); // добавляет сообщение только если второй параметр не пустой \PhalconDebug::addException(new \Exception('ах, ошибка')); \PhalconDebug::addMeasurePoint('окончание'); \PhalconDebug::stopMeasure('start-1'); // stopMeasure(идентификатор_остановки_меры)

addMessage addMessageIfTrue addMessageIfFalse addMessageIfNull addMessageIfEmpty addMessageIfNotEmpty addException addMeasurePoint startMeasure stopMeasure debug/info/notice/warning/error/emergency/critical


#### Примеры

{{ debug(var1, var2) }} {{ info(var1, var2) }} {{ addMessageIfTrue('$var === true', var) }}


### Множественные модули

Обычно вам не требуется изменять другие файлы, если вы следуете указанным ниже правилам:

1. Все сервисы для кэширования содержат слово `cache` в своём имени.
2. Все сервисы для работы с базами данных начинаются с `db` или заканчиваются на `db`.
3. Чтобы открыть независимую страницу отладки, используйте адрес `/_debugbar/open?m={имя_модуля}`.

Если имя вашего сервиса не соответствует этим правилам, вам потребуется прикрепить его к отладочной панели:

```php
// service.php
$di->set('read-db-test', function(...) ); // сервис для работы с базами данных
$di->set('redis', function(...) ); // сервис для кэширования
if ($di->has('debugbar')) {
    $debugbar = $di['debugbar'];
    $debugbar->attachDb('read-db-test');
    $debugbar->attachCache('redis');
}

Устранение неполадок

  • Настоятельно рекомендую вам назначить доменное имя проекту и установить значение baseUri сервиса uri равным /.

  • Для запросов AJAX/JSON данные отладки хранятся в постоянной директории в виде JSON файла. Вы можете загрузить эти данные на страницу отладки через OpenHandler (иконка "Открыть" справа).* Если отладочная панель не работает, вероятнее всего, проблема связана с тем, что один или несколько собирающих модулей вызвали ошибку во время выполнения программы. Вы можете изменить конфигурационный файл отладочной панели, по одному отключать собирающие модули и повторять попытки до тех пор, пока не найдете источник проблемы.* По любым вопросам вы можете создать issue на GitHub.

Снимки экрана


Скриншот


Скриншот


Скриншот


Скриншот


Скриншот


Скриншот


Скриншот


Скриншот


Скриншот


Скриншот


Скриншот

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Интеграция отладчика Php Debugbar в Phalcon. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/zhuyajie-phalcon-debugbar.git
git@api.gitlife.ru:oschina-mirror/zhuyajie-phalcon-debugbar.git
oschina-mirror
zhuyajie-phalcon-debugbar
zhuyajie-phalcon-debugbar
master