Rumah >rangka kerja php >Laravel >Terokai cara mencetak pernyataan pertanyaan dalam Laravel

Terokai cara mencetak pernyataan pertanyaan dalam Laravel

PHPz
PHPzasal
2023-04-13 13:37:37707semak imbas

Laravel ialah rangka kerja PHP yang popular untuk membina aplikasi web moden. Dalam Laravel, adalah amalan biasa untuk menggunakan Eloquent ORM untuk melaksanakan pertanyaan pangkalan data. Walau bagaimanapun, apabila menyahpepijat aplikasi, adalah sangat penting untuk memahami setiap pernyataan pertanyaan kerana ia boleh membantu kami mencari isu prestasi yang berpotensi dalam program. Artikel ini akan meneroka cara mencetak pernyataan pertanyaan dalam Laravel.

Menyahpepijat pernyataan pertanyaan

Laravel menyediakan pelbagai kaedah untuk mencetak pernyataan pertanyaan. Yang paling biasa ialah menggunakan kaedah DB::listen untuk mendengar pertanyaan yang dilaksanakan. Kaedah ini akan memanggil fungsi panggil balik sebelum dan selepas setiap pertanyaan dilaksanakan Kita boleh menangkap pernyataan pertanyaan SQL dan masa yang diperlukan untuk pertanyaan dalam fungsi panggil balik ini. Berikut ialah contoh mudah:

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

Dalam contoh di atas, kami mencetak pernyataan pertanyaan dan parameter terikat apabila melaksanakan setiap pertanyaan. Ini berguna untuk penyahpepijatan kerana kami boleh menyemak sama ada parameter diikat dengan betul ke dalam pertanyaan.

Cara lain ialah menggunakan pustaka Debugbar terbina dalam Laravel. Ia menyediakan antara muka web yang cantik untuk melihat butiran setiap pertanyaan, termasuk pernyataan pertanyaan, masa yang diperlukan untuk pertanyaan dan sebagainya. Untuk menggunakan Debugbar, pertama sekali kita perlu menambahkannya pada aplikasi kami:

composer require barryvdh/laravel-debugbar --dev

Kemudian, tambahkan yang berikut pada tatasusunan config/app.php dalam fail providers kami:

'providers' => [
    // ...
    Barryvdh\Debugbar\ServiceProvider::class,
]

Seterusnya, tambahkan yang berikut pada tatasusunan config/app.php dalam fail aliases:

'aliases' => [
    // ...
    'Debugbar' => Barryvdh\Debugbar\Facade::class,
]

Akhir sekali, tambahkan yang berikut pada templat kami di mana kami ingin melihat Tempat untuk maklumat nyahpepijat:

{!! Debugbar::render() !!}

Ini akan menjadikan bar nyahpepijat yang bagus di bahagian bawah halaman kami dengan maklumat terperinci tentang setiap pertanyaan.

Gunakan perpustakaan pihak ketiga

Selain kaedah yang disediakan di atas, kami juga boleh menggunakan beberapa perpustakaan pihak ketiga untuk mencetak pernyataan pertanyaan. Contohnya, laravel-debugbar-query-filters ialah sambungan yang memfokuskan pada log pertanyaan semata-mata, membolehkan kami memformat dan menapis log pertanyaan mengikut keperluan kami sendiri. Pasang sambungan ini:

composer require danielkuranov/laravel-debugbar-query-filters --dev

Dalam fail config/app.php kami, tambahkan yang berikut pada tatasusunan penyedia:

'providers' => [
    // ...
    DanielKuranov\LaravelDebugbarQueryFilters\ServiceProvider::class,
]

Dalam fail config/app.php, tambahkan Perkara berikut ialah ditambahkan pada tatasusunan alias:

'aliases' => [
    // ...
    'DebugbarQueryFilters' => \DanielKuranov\LaravelDebugbarQueryFilters\DebugbarQueryFilters::class,
]

Seterusnya, kami akan mendaftarkan pendengar acara dalam fail app/Providers/AppServiceProvider.php untuk menggunakan penapis dalam log pertanyaan. Sila tambahkan yang berikut:

use DebugbarQueryFilters;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        DebugbarQueryFilters::replaceBindings();
    }
}

Pendengar acara ini akan didaftarkan secara automatik apabila aplikasi dimulakan.

Ringkasan

Cetak pernyataan pertanyaan dalam Laravel ialah teknik penyahpepijatan biasa yang boleh membantu kami mencari isu dan ralat prestasi. Laravel menyediakan berbilang kaedah untuk mencetak pernyataan pertanyaan, termasuk menggunakan kaedah DB::listen dan menggunakan pustaka Debugbar. Selain itu, kami boleh memasang perpustakaan pihak ketiga untuk meningkatkan log pertanyaan kami. Semoga artikel ini dapat membantu anda mencari isu prestasi dan ralat semasa menyahpepijat aplikasi Laravel.

Atas ialah kandungan terperinci Terokai cara mencetak pernyataan pertanyaan dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn