Debugbar для Laravel

Debugbar для Laravel

Это пакет для интеграции панели отладки PHP с Laravel. Он включает ServiceProvider для регистрации панели отладки и прикрепления ее к выходным данным. Вы можете публиковать активы и настраивать их через Laravel. Он загружает некоторые коллекторы для работы с Laravel и реализует пару пользовательских сборщиков данных, специфичных для Laravel. Он настроен для отображения перенаправлений и (jQuery) запросов Ajax. (Показано в раскрывающемся списке) Дополнительные параметры конфигурации см. в документации.

Источник: GitHub


Примечание. Используйте DebugBar только в процессе разработки. Это может замедлить работу приложения (поскольку оно должно собирать данные). Поэтому, если вы испытываете медлительность, попробуйте отключить некоторые сборщики.

Этот пакет включает в себя несколько пользовательских сборщиков:

  • QueryCollector: показать все запросы, включая привязку и время.
  • RouteCollector: Показать информацию о текущем маршруте.
  • ViewCollector: показать загруженные в данный момент представления. (Необязательно: отображать общие данные)
  • EventsCollector: Показать все события
  • LaravelCollector: показать версию Laravel и среду. (отключено по умолчанию)
  • SymfonyRequestCollector: заменяет RequestCollector дополнительной информацией о запросе/ответе.
  • LogsCollector: показать последние записи журнала из журналов хранилища. (отключено по умолчанию)
  • FilesCollector: Показать файлы, которые включены/требуются PHP. (отключено по умолчанию)
  • ConfigCollector: отображение значений из файлов конфигурации. (отключено по умолчанию)
  • CacheCollector: отображение всех событий кэша. (отключено по умолчанию)

Загружает следующие сборщики для Laravel:

  • LogCollector: показать все сообщения журнала
  • SwiftMailCollector и SwiftLogCollector для почты

И сборщики по умолчанию:

  • PhpInfoCollector
  • СообщенияКоллектор
  • TimeDataCollector (с синхронизацией загрузки и приложений)
  • ПамятьКоллектор
  • Сборщик исключений

Он также предоставляет фасадный интерфейс ( Debugbar) для удобной регистрации сообщений, исключений и времени .


Монтаж

Требовать этот пакет с помощью composer. Рекомендуется требовать пакет только для разработки.

composer require barryvdh/laravel-debugbar --dev

Laravel использует автоматическое обнаружение пакетов, поэтому вам не нужно вручную добавлять ServiceProvider.

Панель отладки будет включена, APP_DEBUGкогда true.

Если вы используете универсальный/запасной маршрут, убедитесь, что вы загружаете Debugbar ServiceProvider перед вашими собственными App ServiceProviders.


Laravel без автообнаружения:

Если вы не используете автоматическое обнаружение, добавьте ServiceProvider в массив поставщиков в config/app.php.

Barryvdh\Debugbar\ServiceProvider::class,

Если вы хотите использовать фасад для регистрации сообщений, добавьте это к своим фасадам в app.php:

'Debugbar' => Barryvdh\Debugbar\Facades\Debugbar::class,

Профилировщик включен по умолчанию, если у вас APP_DEBUG=true. Вы можете переопределить это в config( debugbar.enabled) или установив DEBUGBAR_ENABLEDв файле .env. Дополнительные параметры см. в разделе config/debugbar.php Вы также можете установить в своей конфигурации, если хотите также включить/исключить файлы поставщиков (FontAwesome, Highlight.js и jQuery). Если вы уже используете их на своем сайте, установите для него значение false. Вы также можете отображать только поставщиков js или css, установив для него значение «js» или «css». (Highlight.js требует как css, так и js, поэтому установите trueдля подсветки синтаксиса)


Скопируйте конфигурацию пакета в локальную конфигурацию с помощью команды публикации:

php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"


Laravel с Октаном:

Обязательно добавьте LaravelDebugbar в свой список сбросов в config/octane.php.

    'flush' => [
        \Barryvdh\Debugbar\LaravelDebugbar::class,
    ],


Люмен:

Для Lumen зарегистрируйте другого провайдера в bootstrap/app.php:

if (env('APP_DEBUG')) {
 $app->register(Barryvdh\Debugbar\LumenServiceProvider::class);
}

Чтобы изменить конфигурацию, скопируйте файл в папку конфигурации и включите его:

$app->configure('debugbar');


Применение

Теперь вы можете добавлять сообщения с помощью Фасада (при добавлении), используя уровни PSR-3 (отладка, информация, уведомление, предупреждение, ошибка, критическое, предупреждение, чрезвычайная ситуация):

Debugbar::info($object);
Debugbar::error('Error!');
Debugbar::warning('Watch out…');
Debugbar::addMessage('Another message', 'mylabel');

И время запуска/остановки:

Debugbar::startMeasure('render','Time for rendering');
Debugbar::stopMeasure('render');
Debugbar::addMeasure('now', LARAVEL_START, microtime(true));
Debugbar::measure('My long operation', function() {
    // Do something…
});

Или журнал исключений:

try {
    throw new Exception('foobar');
} catch (Exception $e) {
    Debugbar::addThrowable($e);
}

Существуют также вспомогательные функции, доступные для наиболее распространенных вызовов:

// All arguments will be dumped as a debug message
debug($var1, $someString, $intValue, $object);

// `$collection->debug()` will return the collection and dump it as a debug message. Like `$collection->dump()`
collect([$var1, $someString])->debug();

start_measure('render','Time for rendering');
stop_measure('render');
add_measure('now', LARAVEL_START, microtime(true));
measure('My long operation', function() {
    // Do something…
});

Если вы хотите, вы можете добавить свои собственные DataCollectors через Container или Facade:

Debugbar::addCollector(new DebugBar\DataCollector\MessagesCollector('my_messages'));
//Or via the App container:
$debugbar = App::make('debugbar');
$debugbar->addCollector(new DebugBar\DataCollector\MessagesCollector('my_messages'));

По умолчанию Debugbar внедряется непосредственно перед </body>. Если вы хотите внедрить панель отладки самостоятельно, установите для параметра конфигурации «внедрить» значение false и самостоятельно используйте средство визуализации и следуйте http://phpdebugbar.com/docs/rendering.html .

$renderer = Debugbar::getJavascriptRenderer();

Примечание. Если не использовать автоматическую вставку, информация о запросе будет отключена, поскольку она добавляется после ответа. Вы можете добавить сборщик данных default_request в конфигурацию в качестве альтернативы.


Включение/отключение во время выполнения

Вы можете включить или отключить панель отладки во время выполнения.

\Debugbar::enable();
\Debugbar::disable();

NB. После включения коллекторы добавляются (и могут создавать дополнительные накладные расходы), поэтому, если вы хотите использовать панель отладки в производственной среде, отключите ее в конфигурации и включайте только при необходимости.


Интеграция с веткой

Laravel Debugbar поставляется с двумя расширениями Twig. Они протестированы с rcrowe/TwigBridge 0.6.x.

Добавьте следующие расширения в файл config/extensions.php TwigBridge (или зарегистрируйте расширения вручную)

'Barryvdh\Debugbar\Twig\Extension\Debug',
'Barryvdh\Debugbar\Twig\Extension\Dump',
'Barryvdh\Debugbar\Twig\Extension\Stopwatch',

Расширение Dump заменит функцию дампа для вывода переменных с использованием DataFormatter. Расширение отладки добавляет debug()функцию, которая передает переменные сборщику сообщений вместо того, чтобы отображать их непосредственно в шаблоне. Он сбрасывает аргументы или когда пуст; все переменные контекста.

{{ debug() }}
{{ debug(user, categories) }}

Расширение Stopwatch добавляет тег секундомера, аналогичный тегу в Symfony/Silex Twigbridge.

{% stopwatch "foo" %}
    …some things that gets timed
{% endstopwatch %}