yiisoft/yii2-debug
Yii2 Debug adds a bottom toolbar and dedicated pages to inspect requests, logs, DB queries, profiling, and more during development. Install via Composer and enable the debug module in your app config to quickly diagnose issues.
dd(), dump(), Laravel Debugbar, Telescope, and Xdebug). This package’s primary value (a persistent debug toolbar) is redundant unless custom Yii-specific panels are required.Panel, Module, event listeners).app.blade.php).Telescope or Debugbar already handle this more efficiently.laravel-ide-helper integration).| Risk Area | Assessment | Mitigation Strategy |
|---|---|---|
| Framework Mismatch | Yii 2.x core dependencies (e.g., yii\base\Module) are incompatible with Laravel. |
Abstract core logic into a Laravel-compatible layer (e.g., custom DebugPanel trait). |
| Performance Impact | Debug data collection adds ~10–50ms per request (varies by panels). | Disable in production; use config('debug' => false) or environment checks. |
| Security Risks | Debug panels expose sensitive data (queries, routes, logs). | Restrict to allowedIPs (like Yii) or Laravel’s trustedProxies. |
| Maintenance Burden | Custom panels require Yii-specific event listeners (e.g., View::EVENT_BEFORE_RENDER). |
Rewrite listeners using Laravel events (e.g., View::rendered). |
| Route Conflicts | Debug routes (e.g., /debug/default) may clash with Laravel’s router. |
Use Laravel’s Route::prefix('debug')->group() or middleware to isolate routes. |
Debugbar, Telescope) first.APP_DEBUG=true)?yii\base\Module, yii\debug\Panel) makes direct use impossible.barryvdh/laravel-debugbar).| Step | Action | Tools/Libraries |
|---|---|---|
| 1. Assess Needs | Audit missing debug features in Laravel (e.g., "I need a toolbar for Yii’s CWebLogRoute"). |
php artisan debug:list (hypothetical) |
| 2. Choose Integration Type | Decide between: | |
- Full Rewrite: Build a Laravel DebugToolbar package (high effort). |
||
| - Partial Use: Extract Yii panels as standalone PHP classes and adapt them. | ||
| - Hybrid: Use Laravel Debugbar + custom middleware to mirror Yii’s toolbar. | ||
| 3. Core Integration | Create a Laravel service provider to: | Illuminate\Support\ServiceProvider |
| - Register middleware to collect debug data. | Illuminate\Http\Middleware |
|
- Inject toolbar HTML into views (e.g., via stack::push). |
Illuminate\View\Component |
|
- Set up routes for /debug endpoints. |
Route::middleware(['web', 'debug'])->... |
|
| 4. Panel Adaptation | Rewrite Yii panels (e.g., DbPanel, ViewsPanel) to use Laravel events: |
|
- Replace Event::on(View::class, ...) with View::rendered(). |
||
- Adapt data collection (e.g., use DB::getQueryLog() instead of Yii’s CDbConnection). |
||
| 5. IDE Integration | Replace Yii’s traceLine with Laravel-compatible URLs: |
laravel-ide-helper |
- Example: file://{project}/app/{file}&line={line} → ide://open?file={file}&line={line}. |
||
| 6. Security Hardening | Restrict debug access: | |
- Use Middleware to check request()->ip() against allowedIPs. |
Illuminate\Http\Middleware |
|
- Disable in production (APP_DEBUG=false). |
str_contains).barryvdh/laravel-debugbar: Overlapping features.spatie/laravel-activitylog: May need debug data isolation.DbPanel for query logging).DB::listen() for query profiling.Middleware or Gate.@runtime/debug. Laravel alternatives:
How can I help you explore Laravel packages today?