wizdamdebug/debug-toolbar

Standalone Debug Toolbar based on CodeIgniter4 DebugBar - Framework Agnostic

Maintainers

Package info

github.com/mokesano/WizdamDebugToolbar

pkg:composer/wizdamdebug/debug-toolbar

Fund package maintenance!

mokesano

Statistics

Installs: 0

Dependents: 1

Suggesters: 0

Stars: 1

Open Issues: 0

v1.0.0 2026-04-19 07:41 UTC

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.

PHP Version License Packagist Build Status

โœจ 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) dan psr/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.

GitHub Stars GitHub Forks