Registrando todas as consultas em uma linha de comando Laravel
Este é um método que eu usei quando trabalhava no DNS Spy, já que a maioria da lógica da aplicação está dentro de serviços de execução, executados via CLI.
Para a maioria dos projetos web em Laravel↳Laravel17 conteúdosGerenciando Assets com Laravel MixDev (Back & Front) · ago 2019Laravel: single table inheritanceDev (Back & Front) · set 2020Como fazer um CRUD no Laravel, do zero – PARTE 1Dev (Back & Front) · jun 2020Ver tudo em Dev (Back & Front) →, vocês podem utilizar o excelente pacote laravel debugbar para ter uma visão geral no navegador de todas as consultas sendo executadas por página. Para comandos executados via Artisan na linha de comando, você precisa de uma alternativa.
Este é um método que eu utilizei com frequência enquanto trabalhava no DNS Spy, já que a maioria da lógica da aplicação está dentro dos workers jobs, executados somente via CLI.
Então, aqui está um método rápido para registrar todas suas consultas SQL↳SQL64 conteúdosSQL Server – Como evitar SQL Injection?Data · mai 2019Azure SQL DB Managed InstanceData · abr 2019SQL Server – Como evitar SQL Injection? Pare de utilizar Query Dinâmica como EXEC(@Query)Data · abr 2019Ver tudo em Data → na saída do console.
<php
use Illuminate\Support\Facades\DB;
public function handle()
{
\DB::listen(function($sql) {
var_dump($sql->sql);
});
}
?>
Primeiro, importe o DB Facade.
Então, adicione um listener para todas as consultas sendo executadas, e deixe a consulta em var_dump(). Como alternativa, você pode utilizar dump() ou dd() também.
O resultado:
$ php artisan queue:work ... string(170) "select * from `xxx` where `xxx`.`record_id` = ? and `xxx`.`record_id` is not null ..." string(146) "insert into `xxx` (`value`, `nameserver_id`, `ttl`, ... ) values (?, ?, ?, ...)"
Adicionar um DB listener é uma maneira conveniente de visualizar todas suas pesquisas direto no console, para os momentos que o debugbar não puder ser utilizado.
***
Mattias Geniar faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://ma.ttias.be/log-queries-laravel-cli-command/.






