Comment tester dans laravel/phpunit combien de temps la requête a pris pour s'exécuter?
Est-il possible de ne pas dépendre d'autre chose?
La manière la plus ancienne est la meilleure:
$start = microtime(true);
// Execute the query
$time = microtime(true) - $start;
Puisque Laravel 5.2 listen
a changé en un seul argument:
\DB::listen(function ($query) {
// $query->sql
// $query->bindings
// $query->time
});
Documents: https://laravel.com/docs/5.2/database
Vous pouvez listen
pour exécuter une requête comme celle-ci et consigner le résultat dans storage/logs/laravel.log
.
\DB::listen(function ($sql, $bindings, $time) {
\Log::info($sql, $bindings, $time);
});
Vous pouvez simplement utiliser $time
uniquement, mais je me suis connecté $sql, $bindings, $time
pour l'achèvement.
Vous pouvez mettre cela dans votre AppServiceProvider
.
MISE À JOUR:
Dans Laravel version> 5.5 cette approche est documentée dans le doc comme écoute des événements de requête ;)
Vous pouvez utiliser ddd($someVar)
helper à partir de Laravel 6.x.
Il y a un onglet Queries
qui décrit chaque requête exécutée jusqu'à ce que ddd()