digitalstate/platform-bpm-bundle
HttpClient for API calls, Laravel’s Bus for queues).ACT_* tables), Laravel’s migrations would need to be extended or a separate schema managed.laravel-queue for async process execution)?spatie/laravel-activitylog or custom state machines)?| Laravel Component | Integration Strategy | Tools/Libraries Needed |
|---|---|---|
| Service Container | Replace Symfony’s DI with Laravel’s bindings (e.g., AppServiceProvider::register). |
Illuminate\Contracts\Container\BindingResolution |
| Event System | Map Oro’s events to Laravel’s events/listeners or queued jobs. | Illuminate\Events\Dispatcher |
| Database | Use Laravel Migrations for BPM engine tables (if any) or external DB schema. | Illuminate\Database\Migrations |
| Task Scheduling | Offload long-running processes to Laravel Queues (Redis, Database, etc.). | Illuminate\Bus\Queueable |
| API Calls (BPM Engine) | Use Guzzle HTTP Client or Symfony’s HttpClient (if bridged). | GuzzleHttp\Client / Symfony\Component\HttpClient |
| Authentication | Integrate with Laravel’s auth system (e.g., Sanctum, Passport) for BPM user mapping. | Laravel\Sanctum / Laravel\Passport |
| Logging & Monitoring | Forward logs to Laravel’s Monolog or Sentry. | Spatie/Laravel-logging / Sentry |
// app/Facades/BPM.php
public function startProcess(string $processId, array $variables) {
return $this->bundle->getEngine()->startProcess($processId, $variables);
}
ProcessStarted → event(new ProcessStarted($process))).Schema::connection('bpm_engine')->create('act_ru_execution', function (Blueprint $table) { ... });
Job integration out-of-the-box).Macroable to extend the bundle’s classes.symfony/http-client), increasing composer complexity.Laravel\Queue\Retryable).| Failure Scenario | Impact | Mitigation Strategy |
|---|---|---|
| BPM Engine Crashes | Workflows hang; no process completion. | Circuit breaker pattern + **fallback queue |
How can I help you explore Laravel packages today?