Laravel 5.3 – Как регистрировать все запросы на странице?

Моя команда и я работаем над довольно большим проектом. Запросы происходят повсюду – в контроллерах, в виду композиторов в представлениях (ленивая загрузка) и, возможно, в некоторых других сервисах. Сложно отслеживать все это, и скорость загрузки страницы на данный момент довольно медленная.

Где бы я поместил \ DB :: enableQueryLog () и \ DB :: getQueryLog (), чтобы регистрировать ВСЕ запросы и выгружать их? В основном я ищу какое-то место в коде, которое происходит до того, как произойдет какой-либо из запросов (поставить enableQueryLog ()), и я ищу место, которое происходит после рендеринга представлений (для дампа getQueryLog ()).

Что было бы хорошим путем?

Заранее спасибо.

Вот прекрасный пример:

https://laravel.com/docs/5.3/database#listening-for-query-events

Откройте приложение \ Providers \ AppServiceProvider.php и добавьте следующую функцию Boot() :

 DB::listen(function ($query) { var_dump([ $query->sql, $query->bindings, $query->time ]); }); 

Вы можете добавить это в файл Providers / AppServiceProvider.php и проверить их в файле журнала laravel с хвостом:

 tail -f storage/logs/laravel.log 

Вы можете даже фильтровать запросы, которые хотите записать. Например, здесь я использовал Laravel Passport и не хотел регистрировать все запросы oauth.

 use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Log; public function register() { if (App::environment('local') && env('APP_URL') == 'http://localhost') { Event::listen('Illuminate\Database\Events\QueryExecuted', function ($query) { // filter oauth ones if (!str_contains($query->sql, 'oauth')) { Log::debug($query->sql . ' - ' . serialize($query->bindings)); } }); } } 

добавьте промежуточное программное обеспечение, которое выполняется после выполнения запроса и регистрирует ваши запросы … см. Terminable Middlwares

Вы используете MySQL? Вы можете просто закрыть журнал.

Как показать последние запросы, выполняемые в MySQL?

Или использовать Laurvel Debug Bar?