- How do I install Ignition in a Laravel project?
- Use Composer to install `spatie/laravel-ignition` (the Laravel-specific package). It auto-registers via a service provider, so no manual setup is needed beyond `composer require spatie/laravel-ignition`. For vanilla PHP, install `spatie/ignition` and call `Ignition::make()->register()` in your bootstrap file.
- Does Ignition work with Laravel 10+ and PHP 8.0+?
- Yes, Ignition is fully compatible with Laravel 9+ and PHP 8.0+. It leverages modern PHP features like named arguments and the `Throwable` interface, ensuring smooth integration. For older Laravel versions, you may need to adjust dependencies or use legacy branches.
- Can I use Ignition in production?
- No, Ignition is designed for development only. It includes a `shouldDisplayException()` method to restrict usage to local/staging environments. Exposing stack traces or sensitive data in production is unsafe. Use Laravel’s default error pages or tools like Flare for production monitoring.
- How do I customize Ignition’s appearance (e.g., dark mode, branding)?
- Ignition supports dark mode out of the box—enable it via `Ignition::configure(fn (IgnitionConfig $config) => $config->darkMode(true))`. For deeper customization, like theming or solution templates, extend the package by creating custom solution providers or overriding its Blade views in your project.
- What’s the difference between `spatie/ignition` and `spatie/laravel-ignition`?
- `spatie/ignition` is the framework-agnostic core package, while `spatie/laravel-ignition` is a Laravel-specific wrapper that integrates seamlessly with Laravel’s middleware, service providers, and environment detection. Use the Laravel package for a hassle-free setup in Laravel apps.
- Does Ignition integrate with error monitoring tools like Sentry or New Relic?
- Ignition primarily integrates with Spatie’s Flare for advanced monitoring, but it doesn’t natively support Sentry or New Relic. You can manually forward exceptions to these tools using Laravel’s `report()` method or middleware. Flare is optional and requires separate installation (`spatie/flare-laravel`).
- How do I handle exceptions in queued jobs or console commands?
- Ignition won’t automatically display errors in queued jobs or console commands since they lack a browser context. For jobs, log exceptions to Flare or a monitoring service. For console commands, wrap code in try-catch blocks or use `try { ... } catch (Throwable $e) { report($e); }` to ensure errors are captured.
- Can I disable Ignition for specific routes or exceptions?
- Yes, use middleware or the `shouldDisplayException()` method to conditionally disable Ignition. For example, restrict it to local environments: `Ignition::shouldDisplayException(fn () => app()->environment('local'))`. You can also create custom solution providers to filter exceptions by type.
- What are the AI-powered solutions in Ignition, and how do I use them?
- Ignition’s AI solutions (powered by OpenAI) suggest fixes for common errors by analyzing stack traces. Enable them via `Ignition::configure(fn ($config) => $config->aiSolutions(true))`. Note that AI responses require validation before use, as they’re context-dependent. Cache responses with `useCache(true)` to reduce API calls.
- Are there alternatives to Ignition for Laravel error pages?
- Yes, alternatives include Laravel Debugbar (for debugging tools), Whoops (a lightweight error page), and Tighten’s Laravel Debugbar. Ignition stands out for its modern UI, dark mode, and AI-assisted solutions, but Debugbar may be preferable for performance-sensitive apps or those needing detailed request inspection. Choose based on your need for aesthetics vs. functionality.