nunomaduro/collision
Collision provides beautiful, developer-friendly CLI error reporting for PHP apps. Built on Whoops and included with Laravel, it integrates with Symfony, PHPUnit, and more to show rich stack traces and context when exceptions happen.
Architecture fit: Optimized for CLI-centric PHP applications (Laravel, Symfony, standalone). Seamlessly integrates with Laravel's existing error handling system and Symfony Console components. Built on Whoops for robust error rendering while adding Laravel-specific enhancements like Artisan command integration.
Integration feasibility: Straightforward Composer installation with clear version constraints. Requires PHP 8.2+ and compatible Symfony Console/Whoops versions. Non-Laravel projects need manual registration via Provider::register() but follow standard PHP error handler patterns. Laravel projects get automatic integration via framework bootstrapping.
Technical risk: Low to moderate. Maintained by Laravel core contributor (Nuno Maduro) with high activity (4644 stars, regular releases). Strict PHP 8.2+ requirement blocks legacy projects. Symfony Console dependency version conflicts possible in mixed-stack environments. Breaking changes in major Collision versions could occur if not pinned correctly.
Key questions: How does it handle custom exception types or third-party framework-specific errors? What is the upgrade path when migrating between Laravel major versions? Are there performance implications for high-volume CLI jobs? Does it support custom error templates or theming beyond Termwind's defaults?
Stack fit: Ideal for Laravel projects (pre-integrated) and Symfony CLI apps. Termwind dependency aligns with Laravel's modern styling ecosystem. Works with PHPUnit/Pest for test error reporting. Not suitable for non-CLI environments (e.g., web requests). Best used where terminal output quality matters for developer experience.
Migration path: For Laravel 8-12, strictly follow version compatibility table (e.g., Laravel 11.x → Collision 8.x). Existing Whoops integrations can be replaced by unregistering Whoops and registering Collision. For legacy frameworks, replace custom error handlers with Collision's provider registration in CLI entrypoints.
Compatibility: Requires PHP 8.2+ and Symfony Console 7.
How can I help you explore Laravel packages today?