digitalstate/platform-notification-bundle
Notification and Subscription) that can integrate cleanly into an event-driven or pub/sub architecture.symfony/console, symfony/dependency-injection, and doctrine/orm packages.laravel-doctrine/orm or illuminate/database wrappers for Doctrine.Events or Laravel Echo for real-time subscriptions.Notification/Subscription tables. Schema-first approach may conflict with Laravel’s migrations; flysystem or schema builder tools can mitigate this.EmailChannel, SMSChannel). Laravel’s service providers can wrap these as bound interfaces.oro/platform) may introduce unnecessary overhead for lightweight Laravel apps.| Component | Laravel Equivalent/Adapter | Notes |
|---|---|---|
| OroPlatform Bundle | Laravel Package (via Composer) | Use symfony/flex recipes for DI. |
| Doctrine ORM | laravel-doctrine/orm or custom Eloquent wrappers |
Avoid if Eloquent’s query builder suffices. |
| Event System | Laravel Events + illuminate/queue |
Replace Oro’s event dispatcher. |
| Channel Abstraction | Service Providers + Interfaces | Example: NotificationChannelContract. |
| CLI Commands | Laravel Artisan Commands | Rewrite Oro’s commands (e.g., subs:list). |
Phase 1: Proof of Concept
Notification/Subscription flow using Eloquent.vonage/laravel-notification-channel-sms).Phase 2: Full Integration
// Example: Custom Repository for Subscriptions
class SubscriptionRepository extends EloquentRepository {
use \Doctrine\ORM\Mapping\ClassMetadata;
// Adapt queries to Eloquent.
}
// Before (Oro)
$eventDispatcher->dispatch(new NotificationSentEvent($notification));
// After (Laravel)
event(new NotificationSent($notification));
Mailgun, Twilio) as Laravel service providers.Phase 3: Optimization
Notification::dispatch($user, $topic)
->onChannels(['mail', 'sms'])
->delay(now()->addMinutes(5)); // Use `laravel-notification-channels` queue.
redis) for subscription lookups.oro/platform with Laravel’s framework and http-kernel.symfony/options-resolver for config management (already in Laravel).spatie/laravel-notification-channels) to avoid reinventing channels.Notification, Subscription) in Eloquent.symfony/*:^5.4) and monitor for breaking changes.PushNotificationChannel) requires modifying core classes. Consider decorator patterns or strategy interfaces to isolate changes.laravel.md with:
Bus/Queue.laravel-debugbar for ORM/channel debugging.Subscription to a standalone package).(user_id, channel, topic).created_at for large volumes.laravel-notification-channels with queue workers.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Channel provider outage (e.g., SMTP) | Notifications fail silently. | Implement retries with laravel-queue-worker. |
| Database lock during bulk subs | Slow performance under load. | Use database transactions + queue jobs. |
| Subscription data corruption | Inconsistent user preferences. | Add soft deletes + audit logs. |
| Laravel/OroPlatform version conflict | App crashes on deploy. | CI pipeline to test compatibility. |
How can I help you explore Laravel packages today?