opensoft/opensoft-epl-bundle
Opensoft EPL Bundle is a Symfony bundle that packages EPL integration for PHP applications. It provides bundle configuration and service wiring so teams can add EPL support with minimal setup, keeping EPL-related services organized and reusable across Symfony projects.
This is a Symfony bundle, not a Laravel package. As a Laravel developer you should treat it as a reference implementation rather than something you install. The actual value lives in the underlying epl library it wires up.
composer show opensoft/opensoft-epl-bundle --all (or read the repo's composer.json) and find:
^5.6 || ^7.0) and Symfony version bounds — these usually block install on modern PHP 8/Laravel anyway.OpensoftEplBundle.php — the bundle class (useless to you, but shows what it registers),DependencyInjection/Configuration.php — the config tree, i.e. every option the bundle exposes,DependencyInjection/*Extension.php — how config maps to service definitions,Resources/config/services.{yml,xml} — service IDs, constructor args, and tags (the listener/engine wiring).ServiceProvider, register one statement ("count events per user in a 5-minute window"), push a single event from a queued job, and assert a listener fires. That end-to-end loop is your proof the library is usable without the bundle.EplServiceProvider that binds the engine and a statement registry as singletons, and a thin Epl facade. Do not attempt to register a Symfony Bundle in Laravel — it will never boot.config/epl.php, with env()-driven defaults. Statements, windows, and listener classes belong in config, not in code.boot() (or a dedicated StatementRegistrar), so the engine is ready before the first event arrives.IngestEvent queued job resolves the engine and feeds the event. Matched rules dispatch a first-class Laravel event (EplMatch), which the rest of your app handles with normal listeners. This keeps the EPL layer at the edge.$this->app->tag([...], 'epl.listener') and $this->app->tagged('epl.listener'). Same pattern, Laravel idiom.dont-discover/auto-discovery logic looks for Illuminate\Support\ServiceProvider; a Symfony Bundle subclass is invisible to it.opensoft_epl:). There is no Laravel equivalent — you'll re-declare those keys in config/epl.php and lose the Symfony config-tree validation, so validate manually.queue:work processes keep statement state alive across jobs. Reset or scope the engine per job unless you deliberately want cross-job aggregation — otherwise you get tenant leakage and unbounded memory growth.debug: commands. Symfony's debugging affordances are gone. Add explicit logging around statement compilation and match dispatch, and dump the compiled rule plan in a test.services.yml wiring as a one-time reference, pin the underlying library to a known commit, and budget to fork or replace it, because upstream is dormant.How can I help you explore Laravel packages today?