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.
| 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. |
composer require wizdamdebug/debug-toolbarTambahkan repository ke composer.json proyek Anda:
composer config repositories.wizdam-debug-toolbar vcs https://github.com/mokesano/WizdamDebugToolbar.git
composer require wizdamdebug/debug-toolbar:@devDependensi opsional:
psr/http-message(untuk integrasi PSR-7) danpsr/simple-cache(untuk history storage). Tidak ada dependensi wajib lainnya.
use WizdamDebugToolbar\DebugToolbar;
$config = require 'config/wizdamtoolbar.php';
$toolbar = new DebugToolbar($config);
$toolbar->run();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 HTMLGunakan AdodbDatabaseAdapter untuk mencatat query ADODB:
use WizdamDebugToolbar\Adapters\AdodbDatabaseAdapter;
use WizdamDebugToolbar\Collectors\DatabaseCollector;
$dbAdapter = new AdodbDatabaseAdapter();
$toolbar->addCollector(new DatabaseCollector($dbAdapter));Untuk aplikasi modern yang sudah memiliki middleware stack:
$app->add(new \WizdamDebugToolbar\Middleware\DebugToolbarMiddleware($toolbar));| 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 |
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)
];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);| 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). |
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.