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.
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.
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.
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!