arnedesmedt/event-engine-symfony-bundle
spatie/laravel-event-sourcing) or custom implementations via illuminate/support traits.event-engine/php-postgres-document-store), which may require Laravel-specific adaptations (e.g., spatie/laravel-postgres or raw PDO).opis/json-schema) can be mapped to Laravel’s API Resources or Form Request validation.event-engine/php-engine) is the primary abstraction layer. Laravel can integrate this via service providers or facades, though Symfony’s Bundle structure will need translation (e.g., Laravel\Package\ServiceProvider).spatie/laravel-event-sourcing or custom EventStore class).bus/laravel-queue or spatie/laravel-queue).predis/predis).Illuminate\Support\Traits\Macroable.opis/json-schema can be replaced with Laravel’s Validator or API Resources for request/response validation.ContainerAware) will require abstraction layers to work in Laravel.Symfony\Component\HttpKernel\KernelInterface → Laravel’s Illuminate\Contracts\Http\Kernel) or decorators to wrap dependencies.php-postgres-document-store must be replaced with a MySQL-compatible store (e.g., prooph/pdo-event-store with Laravel’s DB facade).~0.1) is pre-1.0, introducing API instability risk. Validate backward compatibility or fork for stability.pestphp/pest) will be needed for edge cases.php-postgres-document-store be replaced?| Symfony Bundle Component | Laravel Equivalent | Integration Strategy |
|---|---|---|
| Symfony Messenger | Laravel Queues (bus/laravel-queue) |
Replace MessageBus with Laravel’s DispatchesJobs trait. |
| Prooph Event Store | Spatie Event Sourcing | Use spatie/laravel-event-sourcing as a drop-in. |
| PostgreSQL Document Store | Eloquent/Raw PDO | Replace with prooph/pdo-event-store + Laravel DB. |
| Symfony Lock | Laravel Semaphore/Redis | Use predis/predis for Redis locks. |
| JSON Schema Validation | Laravel Validator/API Resources | Replace with validator or custom FormRequest. |
| Symfony Cache | Laravel Cache | Use Illuminate\Support\Facades\Cache directly. |
Phase 1: Proof of Concept (PoC)
spatie/laravel-event-sourcing for storage.Event classes extending Laravel’s base Event class.Phase 2: Bundle Integration (Hybrid Approach)
Symfony\Component\HttpKernel\Bundle\Bundle with Illuminate\Support\ServiceProvider.Messenger → Illuminate\Bus\Dispatcher).app()->bind()) instead of Symfony’s Container.// app/Providers/EventEngineServiceProvider.php
public function register() {
$this->app->singleton(EventEngine::class, fn() => new EventEngine(
new ProophEventStore($this->app['db.connection']),
new LaravelMessageBus($this->app['bus'])
));
}
Phase 3: Full Adoption
PropertyInfo → Laravel Reflection).queue:work and queue:listen.phpunit with pestphp/pest for Laravel-specific assertions.FormRequest or Validator facade.prooph/pdo-event-store.replace for Symfony dependencies).ServiceProvider in config/app.php.~0.1) is a high-maintenance risk. Pin versions strictly or fork for stability.tighten/laravel-event-replayer).How can I help you explore Laravel packages today?