Clockwork — это инструмент разработки PHP, доступный прямо в вашем браузере. Clockwork дает вам представление о времени выполнения вашего приложения, включая данные запросов, показатели производительности, записи журнала, запросы к базе данных, запросы к кешу, команды Redis, отправленные события, задания в очереди, отображаемые представления и многое другое - для HTTP-запросов, команд, заданий очереди и тестов. .
Этот репозиторий содержит серверный компонент Clockwork.
Подробности можно узнать на сайте Clockwork.
Установите библиотеку Clockwork через Composer.
composer require itsgoingd/clockwork
Поздравляем, все готово! Чтобы включить дополнительные функции, такие как команды или профилирование заданий в очереди, опубликуйте файл конфигурации с помощью Artisan- vendor:publish
.
Примечание. Если вы используете кеш маршрутов Laravel, вам необходимо обновить его с помощью Artisan-командыroute:cache.
Полную инструкцию по установке можно прочитать на сайте Clockwork.
Серверный компонент Clockwork собирает и хранит данные о вашем приложении.
Clockwork активен только тогда, когда ваше приложение по умолчанию находится в режиме отладки. Вы можете явно включить или отключить Clockwork или даже настроить Clockwork так, чтобы он всегда собирал данные, не подвергая их дальнейшему анализу.
По умолчанию мы собираем массу полезных данных, но вы можете включить больше функций или отключить ненужные вам функции в файле конфигурации.
Некоторые функции могут предусматривать дополнительные параметры, например. для запросов к базе данных вы можете установить порог медленного запроса или включить обнаружение повторяющихся (N+1) запросов. Проверьте файл конфигурации, чтобы увидеть все, на что способен Clockwork.
Есть несколько опций, позволяющих выбрать, для каких запросов Clockwork активен.
В режиме по требованию данные будут собираться только тогда, когда приложение Clockwork открыто. Вы даже можете указать секрет, который будет установлен в настройках приложения для сбора запросов. Только ошибки будут записывать только запросы, заканчивающиеся ответами 4xx и 5xx. Только медленный будет собирать только запросы с ответами, превышающими установленный порог медленности. Вы также можете фильтровать собранные и записанные запросы с помощью специального закрытия. По умолчанию предварительные запросы CORS не собираются.
Новое в Clockwork 4.1: ремесленные команды, задания очереди и тесты теперь также можно собирать, вам необходимо включить это в файле конфигурации.
Clockwork также собирает трассировки стека для таких данных, как сообщения журнала или запросы к базе данных. По умолчанию собираются последние 10 кадров трассировки. Вы можете изменить лимит кадров или отключить эту функцию в файле конфигурации.
Посетите маршрут /clockwork
чтобы просмотреть собранные данные и взаимодействовать с ними.
Приложение покажет все выполненные запросы, что полезно, если запрос сделан не браузером, а, например, мобильным приложением, для которого вы разрабатываете API.
Расширение инструментов разработки браузера также доступно для Chrome и Firefox:
Clockwork теперь дает вам возможность отображать основную информацию о запросе в виде панели инструментов в вашем приложении.
Панель инструментов полностью отображается на стороне клиента и требует установки небольшой библиотеки JavaScript.
Узнайте больше на сайте Clockwork.
С помощью помощника clock() вы можете зарегистрировать любую переменную, от простой строки до массива или объекта, даже нескольких значений:
clock (User:: first (), auth ()-> user (), $ username )
Вспомогательная функция clock()
возвращает свой первый аргумент, поэтому вы можете легко добавлять в свой код встроенные операторы отладки:
User:: create ( clock ( $ request -> all ()))
Если вы хотите указать уровень журнала, вы можете использовать полный вызов:
clock ()-> info ( " User { $ username } logged in! " )
Временная шкала дает вам визуальное представление о времени выполнения вашего приложения.
Чтобы добавить событие на таймлайн — начните его с описания, выполните отслеживаемый код и завершите событие. Для дальнейшей настройки события доступен свободный API.
// using timeline api with begin / end and fluent configuration
clock ()-> event ( ' Importing tweets ' )-> color ( ' purple ' )-> begin ();
. . .
clock ()-> event ( ' Importing tweets ' )-> end ();
В качестве альтернативы вы можете выполнить блок отслеживаемого кода как замыкание. Вы также можете использовать конфигурацию на основе массива вместо свободного API.
// using timeline api with run and array - based configuration
clock ()-> event ( ' Updating cache ' , [ ' color ' => ' green ' ])-> run ( function () {
. . .
});
Подробнее о доступных функциях читайте на сайте Clockwork.