spatie/laravel-ignition
Ignition is a beautiful, customizable error page for Laravel. Share errors via Flare, track production exceptions with notifications, and get helpful debugging tools. Supports Laravel 10+ on PHP 8.1+ (v2+).
App\Exceptions\Handler) and service provider architecture. Minimal architectural disruption as it replaces or augments Laravel’s default error pages without requiring core framework modifications.IgnitionServiceProvider), ensuring errors are caught and processed before reaching the default error handler. This is a best practice for error handling in Laravel.spatie/laravel-ignition) and a single publish command (php artisan vendor:publish --provider="Spatie\Ignition\IgnitionServiceProvider"). No manual configuration required for basic usage.spatie/ignition package) ensures compatibility with Laravel’s Symfony components.config/ignition.php (e.g., enabling/disabling solutions, Flare integration, or custom error pages). Supports theming via Blade templates or CSS overrides.facade/ignition for older Laravel/PHP versions (v5–v9).render() in App\Exceptions\Handler could conflict with Ignition’s middleware. Mitigation: Document integration patterns (e.g., use Ignition::render() explicitly)..env flags (IGNITION_ENABLED=false).SolutionProvider classes.resources/views/vendor/ignition/... for custom styling.php artisan config:clear or .env flags).facade/ignition be a viable fallback?ignition:ignore in app/Http/Kernel.php).Laravel-Centric: Ignition is purpose-built for Laravel, leveraging its:
App\Exceptions\Handler logic for error rendering.IgnitionServiceProvider.Compatibility Matrix:
| Feature | Laravel 10 | Laravel 11 | Laravel 12 | Laravel 13 | PHP 8.1 | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|---|---|---|---|---|
| Ignition v2.x | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Flare Integration | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Livewire Support | v3–v4 | v3–v4 | v3–v4 | v3–v4 | – | – | – | – | – |
| Octane Support | ✅ | ✅ | ✅ | ✅ | – | – | – | – | – |
Non-Laravel Stacks: Not applicable. Ignition is Laravel-specific (unlike generic PHP error handlers like Whoops).
App\Exceptions\Handler for conflicts..env for existing error logging configurations (e.g., Monolog).composer require spatie/laravel-ignition
php artisan vendor:publish --provider="Spatie\Ignition\IgnitionServiceProvider"
config/ignition.php and Blade templates to resources/views/vendor/ignition.config/ignition.php:
'enable' => env('IGNITION_ENABLED', true),
'show_flare_button' => env('IGNITION_FLARE_BUTTON', false),
'enable_solutions' => env('IGNITION_SOLUTIONS', true),
FLARE_API_KEY to .env and enable in config.php artisan tinker + 1/0).'enable' => env('APP_ENV') !== 'production',
Ignition::ignore(function (Request $request) {
return $request->is('api/*');
});
254). Conflicts are unlikely but possible with custom middleware. Solution: Adjust middleware priority in app/Http/Kernel.php if needed.App\Exceptions\Handler overrides render(), ensure it delegates to Ignition:
public function render($request, Throwable $exception)
{
if (app()->bound('ignition') && $this->shouldReturnIgnitionResponse($request, $exception)) {
return app('ignition')->render($request, $exception);
}
return parent::render($request, $exception);
}
decode job payload data if it is a string in v2.3.3). Test with queued jobs to ensure no data leaks.How can I help you explore Laravel packages today?