- How do I install laravel-tracy in a Laravel application?
- Install it as a dev dependency with composer require recca0120/laravel-tracy --dev. Laravel package auto-discovery registers the service provider, and you can publish the single tracy.php config file if you need to customize activation or panels. Keep it out of production requirements and commit the lockfile so every developer gets the same Tracy version.
- Which Laravel and PHP versions does laravel-tracy support?
- The last release was 2023-02-15, so the practical support matrix is likely Laravel 8 through 10 on PHP 7.4 through 8.2. Laravel 11's restructured bootstrap/app.php and middleware registration, plus Laravel 12, are unverified. Spike the package against your exact Laravel and PHP versions before adopting it, and treat Laravel 11+ as unsupported until tested.
- Is laravel-tracy safe to use in production?
- No. laravel-tracy is a developer-experience tool and should be scoped to local or shared development environments only. Gate activation behind APP_ENV and an IP allowlist, and never enable it in production or in staging that contains customer data. Its debug bar and bluescreen can expose queries, session data, and source context.
- How does laravel-tracy interact with Sentry, Bugsnag, or Flare?
- Both Tracy and Laravel-based reporters such as Sentry, Bugsnag, and Flare want to own set_exception_handler and set_error_handler, so handler ordering is the main integration risk. Test the full chain in non-production: keep Laravel's handler intact first, then flip Tracy's exception rendering only after confirming errors still reach your reporter. Also note that Tracy converts E_NOTICE and E_WARNING into exceptions by default, which can surface latent bugs or disrupt flows that Ignition tolerates.
- Can I use laravel-tracy with Laravel Octane or Swoole?
- Octane and Swoole behavior is unverified because Tracy's Debugger uses static state and Laravel Octane keeps workers alive across requests. The safest fit is a classic PHP-FPM app or artisan serve. If you use Octane, spike bar injection, exception rendering, and state reset under long-lived workers before relying on it.
- How does laravel-tracy compare to Laravel Debugbar or Ignition?
- Tracy provides a bluescreen with deep stack inspection, source context, live variable dumps, and IDE links, while its debug bar is lighter than Laravel Debugbar. Ignition is Laravel's default on newer versions, and Debugbar focuses on Laravel-specific panels. Treat Tracy as additive first, not a wholesale replacement, and compare panel coverage for your app's routes, queries, session, auth, and logs.
- Does laravel-tracy work with Inertia.js, Livewire, or API-only apps?
- It is a poor fit for API-only services because there is no HTML response for the debug bar to inject. Inertia and Livewire-heavy SPAs get limited panel coverage, and HTML parsing can corrupt or skip non-HTML, streamed, or Content-Length-set responses. Test dd()-heavy flows and response types before enabling it broadly.
- How do I disable laravel-tracy or fall back to Laravel's default exception handler?
- Keep a documented config flag or one-line revert so developers can fall back to Ignition or Laravel's default exception renderer mid-sprint. Start with Tracy's bar enabled but Laravel's handler left intact, then flip exception handling in dev only after validation. That containment makes it easy to disable Tracy without removing the package.
- Is laravel-tracy actively maintained, and should I fork it?
- The package has a single maintainer, low commit cadence, 378 stars, and 0 dependents in the dependency graph, so bus-factor risk is real. Pin a known-good package tag and pin Tracy transitively in composer.json to avoid surprise upgrades. If you adopt it, plan to vendor or fork it and assign an owner for upstream dormancy.
- How can I test laravel-tracy in CI?
- Add a CI job that installs the package against each supported Laravel and PHP combination and asserts a smoke boot plus a thrown-exception render. Because the bar injects into HTML responses, include a request test that verifies injection and non-interference with JSON or streamed responses. Keep this matrix updated as Laravel and Tracy versions change.