Type-safe extension points for Laravel
A production-ready plugin system for Laravel applications. Build extensible apps with circuit breakers, pipelines, and async processing.
Built for production
Everything you need for extensible, resilient Laravel applications
Safety & Resilience
Multiple layers of protection for production applications
Graceful Execution
Continue execution even when handlers fail. Collect errors without crashing.
Circuit Breaker
Auto-disable failing handlers. Configurable thresholds and recovery timeouts.
Mute & Silence
Temporarily disable specific handlers or all dispatching for seeding and testing.
Strict Mode
Catch missing handlers during development with strict mode exceptions.
Quick Start
Get up and running in minutes
composer require esegments/laravel-extensions
class UserRegistered implements ExtensionPointContract
{
public function __construct(
public readonly User $user,
) {}
}
#[ExtensionHandler(UserRegistered::class, priority: 10)]
class SendWelcomeEmail
{
public function handle(ExtensionPointContract $ext): mixed
{
Mail::to($ext->user)->send(new WelcomeEmail());
return ['emailed' => true];
}
}
Extensions::dispatch(new UserRegistered($user));
Ready to extend your app?
Check out the documentation to learn how to build extensible Laravel applications.