Использование Laravel Telescope для отладки

Laravel Telescope — это инструмент отладки с открытым исходным кодом от Laravel. Он с открытым исходным кодом, бесплатен и доступен на Github. Вы можете установить его, добавив в качестве зависимости Composer.

Что такое telescope Laravel?

Telescope — это инструмент отладки, который представляет собой комбинацию различных средств отслеживания входящих запросов вашего приложения, таких как HTTP-запрос, запросы командной строки, планировщик или очередь.

Эти наблюдатели собирают всю информацию об этих запросах, такую ​​как запросы к базе данных, время выполнения запроса, запущенные события и многое другое.

Установка telescope Laravel

Перед установкой Telescope вам необходимо установить Laravel. Если вы хотите создать новое приложение, вы можете запустить команду ниже в своем терминале, и она создаст новый проект Laravel.

composer create-project laravel/laravel Telescope

Чтобы установить Telescope, выполните следующую команду:

composer require laravel/telescope --dev

Вы можете использовать тег --dev, чтобы установить его как зависимость для разработчиков, или вы можете установить его без этого тега.

После того, как установка настроена и завершена, вы можете перейти к подготовке ресурсов, файлов конфигурации и базы данных, выполнив:

php artisan telescope:install
php artisan migrate

Настройка telescope Laravel

Сразу после установки вы можете открыть маршрут /telescope и вам будет представлен телескоп, как показано ниже:

Ларавел телескоп

Вы можете изменить маршрут в файле config/telescope.php. Этот файл позволяет вам настроить Laravel Telescope. Наиболее важные параметры:

path

Это путь в вашем приложении, который позволит вам получить доступ к телескопу. Значение по умолчанию: telescope.

driver

Здесь Telescope будет хранить данные. Значение по умолчанию: database.

storage

Это определит, какое соединение с базой данных использовать. Он будет использовать подключение к базе данных по умолчанию.

limit

Это определит, сколько данных Telescope будет хранить для всего, что вы будете отлаживать. Значение по умолчанию: 100.

Ограничение доступа к телескопу

В вашей локальной среде любой пользователь может получить доступ к телескопу. Допустим, в производственной среде вы хотите ограничить доступ для выбранных пользователей. Для этого перейдите в файл app/Providers/TelescopeServiceProvider.php и найдите функцию gate.

/**
 * Register the Telescope gate.
 *
 * This gate determines who can access Telescope in non-local environments.
 *
 * @return void
 */
protected function gate()
{
    Gate::define('viewTelescope', function ($user) {
        return in_array($user->email, [
            //
        ]);
    });
}

Вы можете добавить список адресов электронной почты. Пользователи с этим адресом электронной почты будут иметь доступ к Telescope.

Особенности telescope

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

Запросы

На этой вкладке содержится информация обо всех входящих HTTP-запросах к вашему приложению.

Телескоп Laravel — Запросы

Команды

На вкладке команд отображаются все выполненные команды, а также код их завершения. Вы также можете увидеть аргументы, параметры и связанные элементы для этих команд.

Телескоп Laravel — Команды

Исключения

Регистрирует все исключения и позволяет проверить каждое из них. Это покажет вам данные, аналогичные другим вкладкам, такие как имя хоста, тип, запрос, теги, аутентифицированный пользователь.

Телескоп Laravel — исключения

Журналы

На вкладке журналов показано основное сообщение журнала, уровень и время его возникновения для всех элементов журнала.

Телескоп Laravel — Журналы

Queries

Список всех ваших запросов к БД, например панель отладки. Сколько времени они заняли, зайдите и просмотрите полный запрос, какие запросы его вызвали и т. д. Хороший форматированный вид.

Телескоп Laravel — Запросы

Модели

Вы можете видеть создание, обновление и удаление событий; показывает внесенные изменения и т. д.

Телескоп Laravel — Модели

Подробности модели телескопа Laravel

Почта

Показывает список всех отправленных электронных писем; кто являются получателями; когда это произошло; стоит ли он в очереди, а затем, когда очередь его выгоняет. Может видеть тему электронного письма, а когда вы копаетесь в ней, вы также видите предварительный просмотр электронного письма, например MailTrap.

Телескоп Laravel — Почта

Телескоп Laravel — Подробности почты

Уведомления

Показывает все уведомления, их тип и т. д. Предварительного просмотра нет, так как некоторые уведомления недоступны для предварительного просмотра, но если это почтовое уведомление, вы также увидите его там. Если уведомление было поставлено в очередь, вы также можете увидеть его в разделе «Задания» запроса.

Телескоп Laravel — Уведомления

Также имеются вкладки Schedule, Jobs,, Dumps, Gates, Events, Cache и Redis. На всех этих вкладках представлена ​​очень подробная информация обо всех обработках.