Ini adalah paket untuk mengintegrasikan PHP Debug Bar dengan Laravel. Ini termasuk serviceProvider untuk mendaftarkan debugbar dan melampirkannya ke output. Anda dapat mempublikasikan aset dan mengonfigurasinya melalui Laravel. Ini mem -bootstrap beberapa kolektor untuk bekerja dengan Laravel dan mengimplementasikan beberapa kolektor khusus, khusus untuk Laravel. Ini dikonfigurasi untuk menampilkan permintaan pengalihan dan (jQuery) AJAX. (Ditampilkan dalam dropdown) Baca dokumentasi untuk lebih banyak opsi konfigurasi.

Peringatan
Gunakan debugbar hanya dalam pengembangan. Jangan gunakan Debugbar di situs web yang dapat diakses publik, karena akan membocorkan informasi dari permintaan yang disimpan (berdasarkan desain).
Peringatan
Ini juga dapat memperlambat aplikasi (karena harus mengumpulkan dan membuat data). Jadi saat mengalami kelambatan, cobalah menonaktifkan beberapa kolektor.
Paket ini termasuk beberapa kolektor khusus:
Bootstraps kolektor berikut untuk Laravel:
Dan kolektor default:
Ini juga menyediakan antarmuka fasad ( Debugbar ) untuk pesan logging, pengecualian, dan waktu yang mudah
Membutuhkan paket ini dengan komposer. Disarankan hanya membutuhkan paket untuk pengembangan.
composer require barryvdh/laravel-debugbar --devLaravel menggunakan paket penemuan otomatis, jadi tidak mengharuskan Anda untuk menambahkan serviceProvider secara manual.
Debugbar akan diaktifkan saat APP_DEBUG true .
Jika Anda menggunakan rute Catch-All/Fallback, pastikan Anda memuat Debugbar ServiceProvider sebelum aplikasi Anda sendiri.
Jika Anda tidak menggunakan penemuan otomatis, tambahkan serviceProvider ke daftar penyedia. Untuk Laravel 11 atau yang lebih baru, tambahkan serviceProvider di Bootstrap/Providers.php. Untuk Laravel 10 atau lebih, tambahkan serviceProvider di config/app.php.
Barryvdh Debugbar ServiceProvider::class, Jika Anda ingin menggunakan fasad untuk mencatat pesan, tambahkan ini dalam metode register app/Providers/AppServiceProvider.php kelas:
public function register (): void
{
$ loader = Illuminate Foundation AliasLoader:: getInstance ();
$ loader -> alias ( ' Debugbar ' , Barryvdh Debugbar Facades Debugbar::class);
} Profiler diaktifkan secara default, jika Anda memiliki app_debug = true. Anda dapat mengganti itu di konfigurasi ( debugbar.enabled ) atau dengan mengatur DEBUGBAR_ENABLED di .env Anda. Lihat lebih banyak opsi di config/debugbar.php Anda juga dapat mengatur konfigurasi jika Anda ingin memasukkan/mengecualikan file vendor juga (fontawesome, sorote.js dan jQuery). Jika Anda sudah menggunakannya di situs Anda, atur ke false. Anda juga hanya dapat menampilkan vendor JS atau CSS, dengan mengaturnya ke 'JS' atau 'CSS'. (Sorote.js Membutuhkan kedua CSS + JS, jadi true untuk sorot sintaks)
php artisan vendor:publish --provider= " BarryvdhDebugbarServiceProvider " Pastikan untuk menambahkan Laraveldebugbar ke daftar flush Anda di config/octane.php .
' flush ' => [
Barryvdh Debugbar LaravelDebugbar::class,
], Untuk lumen, daftarkan penyedia yang berbeda di bootstrap/app.php :
if ( env ( ' APP_DEBUG ' )) {
$ app -> register ( Barryvdh Debugbar LumenServiceProvider::class);
}Untuk mengubah konfigurasi, salin file ke folder konfigurasi Anda dan aktifkan:
$ app -> configure ( ' debugbar ' );Anda sekarang dapat menambahkan pesan menggunakan fasad (saat ditambahkan), menggunakan level PSR-3 (debug, info, pemberitahuan, peringatan, kesalahan, kritis, peringatan, darurat):
Debugbar:: info ( $ object );
Debugbar:: error ( ' Error! ' );
Debugbar:: warning ( ' Watch out… ' );
Debugbar:: addMessage ( ' Another message ' , ' mylabel ' );Dan mulai/berhenti waktu:
Debugbar:: startMeasure ( ' render ' , ' Time for rendering ' );
Debugbar:: stopMeasure ( ' render ' );
Debugbar:: addMeasure ( ' now ' , LARAVEL_START , microtime ( true ));
Debugbar:: measure ( ' My long operation ' , function () {
// Do something…
});Atau pengecualian log:
try {
throw new Exception ( ' foobar ' );
} catch ( Exception $ e ) {
Debugbar:: addThrowable ( $ e );
}Ada juga fungsi pembantu yang tersedia untuk panggilan paling umum:
// All arguments will be dumped as a debug message
debug ( $ var1 , $ someString , $ intValue , $ object );
// `$collection->debug()` will return the collection and dump it as a debug message. Like `$collection->dump()`
collect ([ $ var1 , $ someString ])-> debug ();
start_measure ( ' render ' , ' Time for rendering ' );
stop_measure ( ' render ' );
add_measure ( ' now ' , LARAVEL_START , microtime ( true ));
measure ( ' My long operation ' , function () {
// Do something…
});Jika Anda mau, Anda dapat menambahkan kolektor Anda sendiri, melalui wadah atau fasad:
Debugbar:: addCollector ( new DebugBar DataCollector MessagesCollector ( ' my_messages ' ));
//Or via the App container:
$ debugbar = App:: make ( ' debugbar ' );
$ debugbar -> addCollector ( new DebugBar DataCollector MessagesCollector ( ' my_messages ' )); Secara default, debugbar disuntikkan sesaat sebelum </body> . Jika Anda ingin menyuntikkan debugbar sendiri, atur opsi konfigurasi 'menyuntikkan' ke false dan menggunakan renderer sendiri dan ikuti http://phpdebugbar.com/docs/rendering.html
$ renderer = Debugbar:: getJavascriptRenderer ();Catatan: Tidak menggunakan injeksi otomatis, akan menonaktifkan informasi permintaan, karena itu ditambahkan setelah respons. Anda dapat menambahkan Datacollector Default_Request di konfigurasi sebagai alternatif.
Anda dapat mengaktifkan atau menonaktifkan debugbar selama waktu berjalan.
Debugbar:: enable ();
Debugbar:: disable ();NB. Setelah diaktifkan, para kolektor ditambahkan (dan dapat menghasilkan overhead tambahan), jadi jika Anda ingin menggunakan debugbar dalam produksi, nonaktifkan di konfigurasi dan hanya mengaktifkan saat dibutuhkan.
Debugbar mengingat permintaan sebelumnya, yang dapat Anda lihat menggunakan tombol Browse di sebelah kanan. Ini hanya akan berfungsi jika Anda mengaktifkan debugbar.storage.open di konfigurasi. Pastikan Anda hanya melakukan ini pada pengembangan lokal, karena jika tidak, orang lain akan dapat melihat permintaan sebelumnya. Secara umum, Debugbar hanya boleh digunakan secara lokal atau setidaknya dibatasi oleh IP. Dimungkinkan untuk lulus panggilan balik, yang akan menerima objek permintaan, sehingga Anda dapat menentukan akses ke penyimpanan OpenHandler.
Laravel Debugbar hadir dengan dua ekstensi ranting. Ini diuji dengan rcrowe/twigbridge 0.6.x
Tambahkan ekstensi berikut ke twigbridge Anda config/extensions.php (atau daftarkan ekstensi secara manual)
' BarryvdhDebugbarTwigExtensionDebug ' ,
' BarryvdhDebugbarTwigExtensionDump ' ,
' BarryvdhDebugbarTwigExtensionStopwatch ' , Ekstensi dump akan menggantikan fungsi dump ke variabel output menggunakan dataFormatter. Ekstensi Debug menambahkan fungsi debug() yang memberikan variabel ke pengumpul pesan, alih -alih menunjukkannya secara langsung di templat. Itu membuang argumen, atau ketika kosong; Semua variabel konteks.
{{ debug() }}
{{ debug( user , categories ) }}Ekstensi Stopwatch menambahkan tag stopwatch yang mirip dengan yang ada di Symfony/Silex Twigbridge.
{% stopwatch " foo " %}
…some things that gets timed
{% endstopwatch %}