<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jansen Felipe</title>
    <description>The latest articles on DEV Community by Jansen Felipe (@jansenfelipe).</description>
    <link>https://dev.to/jansenfelipe</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F44593%2F26a4c330-4b17-456a-ae98-fb482c001c54.png</url>
      <title>DEV Community: Jansen Felipe</title>
      <link>https://dev.to/jansenfelipe</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jansenfelipe"/>
    <language>en</language>
    <item>
      <title>[Laravel Query Monitor] - How to see queries executed by Eloquent?</title>
      <dc:creator>Jansen Felipe</dc:creator>
      <pubDate>Wed, 06 May 2020 03:56:48 +0000</pubDate>
      <link>https://dev.to/jansenfelipe/laravel-query-monitor-how-to-see-queries-executed-by-eloquent-2h80</link>
      <guid>https://dev.to/jansenfelipe/laravel-query-monitor-how-to-see-queries-executed-by-eloquent-2h80</guid>
      <description>&lt;p&gt;This question I asked myself when I was studying the Laravel Framework. At the time, I was impressed with all the “magic” of Eloquent.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight php"&gt;&lt;code&gt;    &lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class="err"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;$users&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;User&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="na"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Jansen Felipe"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="err"&gt;   &lt;/span&gt;
&lt;span class="err"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// The above code executes the following SQL statement:&lt;/span&gt;
&lt;span class="err"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// select * from `users` where name = "Jansen Felipe"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;The Eloquent included in Laravel provides a beautiful and simple ActiveRecord implementation for working with your database.&lt;br&gt;
&lt;a href="https://laravel.com/docs/7.x/eloquent"&gt;* Laravel Framework documentation&lt;/a&gt; *&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I am in complete agreement. Eloquent is a hand in the wheel and speeds up the development of that MVP that you have to publish Friday (lol).&lt;/p&gt;

&lt;p&gt;It turns out that, in the case of success, it is quite possible that your database will grow and your system will start to slow down. (a “good” problem, right?)&lt;/p&gt;

&lt;p&gt;In all the slowness cases I've worked on, most were related to performance in the database. And how to see the queries executed, once they are encapsulated in the framework? It has several forms. I quote some of them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;One way is to access the MySQL server (for example) and run the “show processlist” command.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Another way is to debug the application by calling the “toSql ()” method&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Another way is using the package &lt;a href="https://github.com/supliu/laravel-query-monitor"&gt;https://github.com/supliu/laravel-query-monitor&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Laravel Query Monitor
&lt;/h2&gt;

&lt;p&gt;This package was created as a developer support tool. Through the terminal, you execute the command &lt;code&gt;php artisan laravel-query-monitor&lt;/code&gt; and from then on, all queries executed in your application will appear in real time in the terminal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qyMm_lGs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7t99b163xd0vhpzu0xrx.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qyMm_lGs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7t99b163xd0vhpzu0xrx.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To develop the package, we used &lt;a href="https://github.com/reactphp/socket"&gt;React PHP&lt;/a&gt; to open the query listening service on the terminal. Queries are sent using the DB :: listen method as specified in the Laravel documentation &lt;a href="https://laravel.com/docs/7.x/database#listening-for-query-events"&gt;https://laravel.com/docs/7.x/database#listening-for-query-events&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to use the package, just install it using the composer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    $ composer require --dev supliu/laravel-query-monitor

    $ php artisan vendor:publish --provider="Supliu\LaravelQueryMonitor\ServiceProvider"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;The package code is open and published under the MIT license. So, feel free to copy, use and enhance! Follow the link to the repository on GitHub &lt;a href="https://github.com/supliu/laravel-query-monitor"&gt;https://github.com/supliu/laravel-query-monitor&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Doubts, criticisms or suggestions? Feel free in the comments!&lt;/p&gt;

&lt;p&gt;** This article was originally published in Portuguese &lt;a href="https://supliu.com.br/2020/04/29/laravel-query-monitor-como-ver-queries-e-executadas-pelo-eloquent"&gt;https: //supliu.com.br/2020/04/29/laravel-query-monitor-como-ver-queries-e-executadas-pelo-eloquent/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>eloquent</category>
    </item>
    <item>
      <title>[Laravel Query Monitor] — Como ver queries executadas pelo Eloquent?</title>
      <dc:creator>Jansen Felipe</dc:creator>
      <pubDate>Wed, 06 May 2020 03:45:08 +0000</pubDate>
      <link>https://dev.to/jansenfelipe/laravel-query-monitor-como-ver-queries-executadas-pelo-eloquent-3kp1</link>
      <guid>https://dev.to/jansenfelipe/laravel-query-monitor-como-ver-queries-executadas-pelo-eloquent-3kp1</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://dev.to/jansenfelipe/laravel-query-monitor-how-to-see-queries-executed-by-eloquent-2h80"&gt;Read in English&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Essa pergunta eu me fiz logo quando estava estudando o Laravel Framework. Na ocasião, estava impressionado com toda a “magia” do Eloquent.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight php"&gt;&lt;code&gt;    &lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

    &lt;span class="nv"&gt;$users&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;User&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="na"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Jansen Felipe"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="c1"&gt;// O código acima executa a seguinte instrução SQL:&lt;/span&gt;
    &lt;span class="c1"&gt;// select * from `users` where name = "Jansen Felipe"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;O Eloquent incluído no Laravel fornece uma implementação ActiveRecord bonita e simples para trabalhar com seu banco de dados.&lt;br&gt;
&lt;a href="https://laravel.com/docs/7.x/eloquent"&gt;*Documentação do Laravel Framework&lt;/a&gt;*&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Eu sou de total acordo. O Eloquent é uma mão na roda e acelera bastante o desenvolvimento daquele MVP que você tem que publicar sexta-feira rsrs..&lt;/p&gt;

&lt;p&gt;Acontece que, no caso de sucesso, é bem possível que seu banco de dados cresça e seu sistema comece a ficar lento. (um “bom” problema né?)&lt;/p&gt;

&lt;p&gt;Em todos os casos de lentidão que eu já trabalhei, a maioria estava relacionada a performance no banco de dados. E como ver as queries executadas, uma vez que elas estão encapsuladas no framework? Tem várias formas. Cito alguma delas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Uma forma é acessar o servidor MySQL (por exemplo) e executar o comando “show processlist”.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Outra forma é realizar o debug da aplicação chamando o método “toSql()”&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Outra forma é utilizando o package &lt;a href="https://github.com/supliu/laravel-query-monitor"&gt;https://github.com/supliu/laravel-query-monitor&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Laravel Query Monitor
&lt;/h2&gt;

&lt;p&gt;Esse pacote foi criado como uma ferramenta de suporte ao desenvolvedor. Através do terminal, você executa o comando “&lt;em&gt;php artisan laravel-query-monitor&lt;/em&gt;” e a partir de então, todas as queries executadas na sua aplicação irá aparecer em tempo real no terminal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qyMm_lGs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7t99b163xd0vhpzu0xrx.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qyMm_lGs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7t99b163xd0vhpzu0xrx.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para desenvolver o pacote, utilizamos o &lt;a href="https://github.com/reactphp/socket"&gt;React PHP&lt;/a&gt; para abrir o serviço de escuta de queries no terminal. O envio das queries é realizado utilizando o método DB::listen conforme especificado na documentação do Laravel &lt;a href="https://laravel.com/docs/7.x/database#listening-for-query-events"&gt;https://laravel.com/docs/7.x/database#listening-for-query-events&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se você quer utilizar o pacote, basta fazer a instalação utilizando o composer:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ composer require --dev supliu/laravel-query-monitor

$ php artisan vendor:publish --
provider="Supliu\LaravelQueryMonitor\ServiceProvider"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;O código do pacote é aberto e publicado sob a licença MIT. Então, fique a vontade para copiar, usar e aprimorar! Segue o link do repositório no GitHub &lt;a href="https://github.com/supliu/laravel-query-monitor"&gt;https://github.com/supliu/laravel-query-monitor&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dúvidas, críticas ou sugestões? Fique a vontade nos comentários!&lt;/p&gt;

&lt;p&gt;** Esse artigo foi originalmente publicado em &lt;a href="https://supliu.com.br/2020/04/29/laravel-query-monitor-como-ver-queries-e-executadas-pelo-eloquent/?preview=true"&gt;*https://supliu.com.br/2020/04/29/laravel-query-monitor-como-ver-queries-e-executadas-pelo-eloquent/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>eloquent</category>
    </item>
  </channel>
</rss>
