Pros:
laravel/symfony-bundle or spatie/laravel-symfony-messenger). Its entity-driven structure aligns with Laravel’s Eloquent ORM if adapted via Doctrine Bridge.Manage system calendars) integrates with Symfony’s security system, which can be mapped to Laravel’s spatie/laravel-permission or custom gate policies.CronBundle or Laravel’s spatie/scheduler) are viable for workflow automation.Cons:
Twig, DependencyInjection, EventDispatcher) may require wrappers or polyfills for pure Laravel. Key dependencies:
oro/platform (abandoned; requires fork or alternative like api-platform).doctrine/orm (compatible via laravel-doctrine or illuminate/database bridge).EntityManager, Datagrid, and Search bundles may necessitate refactoring for Laravel’s simpler needs (e.g., no need for Oro’s multi-tenant Organization model).Laravel Compatibility:
laravel-doctrine/orm or illuminate/database bridge, but requires manual mapping of Doctrine entities to Eloquent models.spatie/laravel-twig-view (limited support).symfony/dependency-injection or laravel-symfony-bundle, but may conflict with Laravel’s service container.Router can integrate via spatie/laravel-symfony-router, but requires URL generation adjustments.Key Challenges:
calendar.event.create) must be translated to Laravel’s events or observers.SearchBundle is non-trivial to replace; consider spatie/laravel-searchable or Elasticsearch.symfony/ux for Twig/Stimulus).CalendarEvent entity and controllers, building UI with Laravel’s Inertia/Vue/React.spatie/calendar + custom events)?Laravel-Centric Path:
CalendarEvent to Laravel tables (e.g., calendar_events).Route::resource() or API routes.spatie/laravel-permission or gates.spatie/scheduler for recurring events instead of Oro’s cron system.Symfony Hybrid Path (if Symfony components are unavoidable):
laravel-symfony-bundle to share Symfony services (e.g., DI, EventDispatcher).spatie/laravel-twig-view for templates, but expect limited Blade integration.laravel-doctrine/orm for entity management, but avoid mixing with Eloquent.oro/platform → api-platform or custom fork).CalendarEvent entity to Eloquent and test CRUD operations.spatie/laravel-permission).oro_calendar.twig.dateformat) with Laravel equivalents.laravel-doctrine bridge, but expect query differences.calendar.event.create to Laravel’s event() helper.ParameterBag → Laravel’s config().Organization model → Laravel’s tenancy (if needed) or flat structure.oro_calendar.twig.recurrence) → custom Blade directives.| Priority | Task | Dependencies | Notes |
|---|---|---|---|
| 1 | Entity Migration | Doctrine ↔ Eloquent bridge | Start with CalendarEvent. |
| 2 | Basic CRUD | Eloquent models + API routes | Use Laravel’s make:controller. |
| 3 | Frontend (FullCalendar) | Vue/React + Inertia.js | Replace Twig templates. |
| 4 | ACL Integration | spatie/laravel-permission |
Map Oro’s capabilities to Laravel. |
| 5 | Recurring Events | spatie/scheduler or custom logic |
Replace Oro’s recurrence engine. |
| 6 | External Sync (Optional) | Google Calendar API | Use Laravel’s HTTP client. |
| 7 | Search | Laravel Scout or DB queries | Replace Oro’s SearchBundle. |
How can I help you explore Laravel packages today?