Quantcast
Channel: Yakuter
Viewing all articles
Browse latest Browse all 132

Laravel | Veritabanı Sorgularını Analiz Etmek

$
0
0

Laravel çok geniş kapsamlı bir PHP çatısı. Bu nedenle de küçük projelerden ziyade büyük projelerde özellikle tercih edilmekte. Tabi proje büyüyünce dertleri de büyüyor. Özellikle de performansı artırmak için sistemde yapılan her veritabanı sorgusunu takip etmeniz, hesaba katmanız gerekiyor. İşte Laravel uygulamamızın yapmış olduğu bu veritabanı sorgularını laravel.log kullanarak nasıl analiz edebileceğimizi bu yazıda kısaca anlatmaya çalıştım.

Laravel Veritabanı Sorgularını İncelemek

Yukarıda bahsettiğim sorguları takip etmek içn Laravel/App/Providers klasöründerki AppServiceProvider.php dosyasına ufak bir müdahalede bulunacağız. Eğer başka herhangi bir müdahale yapmadıysanız dosyanın başlangıçtaki hali yorum satırları çıkarıldıktan sonra aşağıdaki gibidir.

<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        //
    }

    public function register()
    {
        //
    }
}

Dosyayı düzenleyerek şu hale getiriyoruz.

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use DB;
use Log;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        DB::listen(function($query) {
            Log::info(
                $query->sql,
                $query->bindings,
                $query->time
            );
        });
    }

    public function register()
    {
        //
    }
}

Tüm işlem bu kadar. Artık projemizde yapılan tüm sorgular storage/logs/laravel.log dosyasına aşağıdaki gibi kaydedilmektedir.

[2017-11-03 10:14:26] local.INFO: select * from `posts` where `slug` = ? limit 1 ["deneme-yazi"] 
[2017-11-03 10:14:27] local.INFO: select * from `photos` where `photos`.`post_id` in (?) [5] 
[2017-11-03 10:14:27] local.INFO: select * from `specs` where `specs`.`post_id` = ? and `specs`.`post_id` is not null [5] 
[2017-11-03 10:14:27] local.INFO: select * from `catalogs` where `catalogs`.`post_id` = ? and `catalogs`.`post_id` is not null [5] 
[2017-11-03 10:14:27] local.INFO: select * from `settings`

Laravel | Veritabanı Sorgularını Analiz Etmek yazısı ilk önce Yakuter üzerinde ortaya çıktı.


Viewing all articles
Browse latest Browse all 132

Trending Articles


Kulak daveti


Şekilli süslü hazır floodlar


Süfli Hadim-Cin Daveti


Kasemi Mübelliğa


Beyyine suresinin bir hassesi


Düşmana Cin Musallat etme


Tefrik için


Düşmanların gözlerinden gizlenmek için Tahatili Seba isimleri


Foxtrot Six Türkçe Dublaj izle (2020)


SCCM 2012 Client Installation issue