wizdamdebug / debug-toolbar
Standalone Debug Toolbar based on CodeIgniter4 DebugBar - Framework Agnostic
Fund package maintenance!
Requires
- php: ^8.0
Requires (Dev)
- phpunit/phpunit: ^10.0
Suggests
- psr/http-message: Untuk integrasi PSR-7 request/response
- psr/simple-cache: Untuk history storage berbasis PSR-16
This package is auto-updated.
Last update: 2026-04-25 15:21:17 UTC
README
Standalone, framework-agnostic debugging toolbar untuk aplikasi PHP. Diekstraksi dan direkayasa ulang dari CodeIgniter 4 Debug Toolbar agar dapat digunakan di luar ekosistem CI4 โ termasuk aplikasi legacy seperti OJS 2.4.8.5.
โจ Mengapa Wizdam Debug Toolbar?
| Situasi | Solusi |
|---|---|
| Anda ingin melihat query database yang lambat di aplikasi legacy OJS. | Aktifkan toolbar, dan DatabaseCollector akan mencatat semua query ADODB beserta durasinya. |
| Anda penasaran view atau template mana yang paling lama dirender. | ViewsCollector menampilkan daftar view dan waktu rendering masing-masing. |
| Anda perlu tahu rute mana yang match dengan request saat ini. | RoutesCollector akan menunjukkan rute, controller, dan parameter. |
| Anda ingin memantau event yang di-trigger selama request. | EventsCollector menyediakan timeline event. |
| Toolbar harus bekerja tanpa mengganggu framework utama. | Dirancang framework-agnostic, bisa diintegrasikan via output buffering atau middleware. |
๐ง Instalasi
Via Composer (Direkomendasikan)
composer require wizdamdebug/debug-toolbar
Integrasi ke Proyek Development
Tambahkan repository ke composer.json proyek Anda:
composer config repositories.wizdam-debug-toolbar vcs https://github.com/mokesano/WizdamDebugToolbar.git composer require wizdamdebug/debug-toolbar:@dev
Dependensi opsional:
psr/http-message(untuk integrasi PSR-7) danpsr/simple-cache(untuk history storage). Tidak ada dependensi wajib lainnya.
โก Contoh Penggunaan
Inisialisasi Dasar
use WizdamDebugToolbar\DebugToolbar; $config = require 'config/wizdamtoolbar.php'; $toolbar = new DebugToolbar($config); $toolbar->run();
Integrasi Aplikasi Legacy (Output Buffering)
Cocok untuk OJS 2.4.8.5 atau aplikasi PHP tanpa middleware stack.
define('WIZDAM_DEBUG', true); // Aktifkan hanya di development! $middleware = new \WizdamDebugToolbar\Middleware\DebugToolbarMiddleware($toolbar); $middleware->startBuffer(); // ... logika aplikasi Anda berjalan normal ... $middleware->endBuffer(); // Toolbar otomatis di-inject di akhir HTML
Integrasi Database ADODB
Gunakan AdodbDatabaseAdapter untuk mencatat query ADODB:
use WizdamDebugToolbar\Adapters\AdodbDatabaseAdapter; use WizdamDebugToolbar\Collectors\DatabaseCollector; $dbAdapter = new AdodbDatabaseAdapter(); $toolbar->addCollector(new DatabaseCollector($dbAdapter));
Integrasi PSR-15 Middleware
Untuk aplikasi modern yang sudah memiliki middleware stack:
$app->add(new \WizdamDebugToolbar\Middleware\DebugToolbarMiddleware($toolbar));
๐งฉ Fitur Utama
| Kategori | Kolektor / Fitur |
|---|---|
| โฑ๏ธ Timers | Benchmark & timeline eksekusi kode |
| ๐๏ธ Database | Query logging (ADODB, PDO, Doctrine) |
| ๐ฃ๏ธ Routes | Inspector rute, controller, parameter |
| ๐ Views | Template render tracker dengan durasi |
| ๐ Files | Daftar file yang di-include / require |
| ๐ก Events | Event listener & trigger tracker |
| ๐ Logs | PSR-3 log viewer |
| โ๏ธ Config | Informasi konfigurasi aplikasi |
| ๐ History | Riwayat N request terakhir |
โ๏ธ Konfigurasi
Salin dan sesuaikan config/wizdamtoolbar.php. Beberapa opsi penting:
return [ 'collectors' => [ /* ... daftar collector class ... */ ], 'maxHistory' => 20, 'historyPath' => sys_get_temp_dir() . '/wizdam-debug-toolbar/', 'ignoredRoutes'=> ['/_wizdam-debug-toolbar', '/api/'], 'toolbarState' => 'minimized', // 'minimized' atau 'maximized' 'theme' => 'auto', // 'light', 'dark', atau 'auto' 'maxQueryTime' => 100, // Highlight query lambat (ms) ];
๐งช Menambah Collector Kustom
Implementasikan CollectorInterface:
use WizdamDebugToolbar\Interfaces\CollectorInterface; class CacheCollector implements CollectorInterface { public function getData(): array { /* ... */ } public function isEnabled(): bool { /* ... */ } public function getBadgeValue(): string|int|null { /* ... */ } public function getIcon(): string { /* ... */ } }
Daftarkan ke toolbar:
$config['collectors'][] = CacheCollector::class; $toolbar = new DebugToolbar($config);
๐ Troubleshooting
| Masalah | Solusi |
|---|---|
| Toolbar tidak muncul | Pastikan WIZDAM_DEBUG = true dan buffer dimulai sebelum output HTML. |
| Query database tidak tercatat | Pastikan adapter (mis. AdodbDatabaseAdapter) sudah didaftarkan ke DatabaseCollector. |
| Error "Class not found" | Jalankan composer dump-autoload atau periksa konfigurasi autoloader manual. |
| History tidak tersimpan | Pastikan direktori historyPath writable (chmod 755). |
๐ Lisensi
MIT License โ Copyright (c) 2025 Sangia Publishing House. Lihat LICENSE untuk teks lengkap.
Toolbar ini diadaptasi dari CodeIgniter 4 Debug Toolbar (Copyright British Columbia Institute of Technology). Digunakan dengan modifikasi dan izin sesuai lisensi MIT asli.
Dibangun dengan โค๏ธ sebagai bagian dari ekosistem Wizdam Frontedge โ platform penerbitan ilmiah modern.