dylvn/core-bundle is explicitly designed as a CoreBundle for OroCommerce, implying deep integration with OroCommerce’s architecture (Symfony-based, modular, and event-driven). If the target system is OroCommerce, this package provides a foundational layer for custom Dylvn-specific logic (e.g., domain models, services, or workflows).symfony/http-foundation, symfony/console) to bridge gaps.oro/platform). Without this, integration would require mocking or reimplementing core OroPlatform services (e.g., EntityManager, Workflow).Oro\ORM\Tools\Pagination). Laravel’s Eloquent would need adapters or hybrid ORM layers.oro/config.yml). Laravel’s config/ system would require migration scripts or runtime overrides.| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Symfony vs. Laravel | High | Abstract Symfony dependencies via interfaces. |
| Doctrine ORM Gaps | High | Use Eloquent for new models; adapt Doctrine for legacy. |
| Event System Mismatch | Medium | Create a facade to translate Oro events to Laravel. |
| Configuration Overlap | Medium | Use Laravel’s config caching + runtime merging. |
| Undocumented APIs | High | Conduct a reverse-engineering audit of OroCommerce’s public API. |
Why Laravel?
Scope of Integration
spatie/laravel-activitylog, laravel-bundle/generators) that achieve similar goals without Symfony dependencies?Team Expertise
Licensing & Compliance
| Component | Laravel Equivalent/Adapter Needed | Notes |
|---|---|---|
| Symfony Bundle | Laravel Package (composer require) |
Use Illuminate\Support\ServiceProvider to bootstrap. |
| OroPlatform Services | Custom Facade Layer | Example: OroEntityManager → Eloquent adapter. |
| Doctrine ORM | Hybrid Approach (Eloquent + Doctrine DBAL) | Use doctrine/dbal for raw queries if needed. |
| Event System | Laravel Events + Custom Listener Bridge | Map Oro\Event\OrderEvent → OrderProcessed in Laravel. |
| Configuration | Laravel Config + Runtime Overrides | Merge Oro’s YAML configs into Laravel’s PHP arrays. |
Phase 1: Dependency Isolation
ContainerAwareService) with Laravel’s ServiceProvider/Binding.// Original (Symfony)
class DylvnService extends ContainerAwareService { ... }
// Laravel Adapted
class DylvnService {
public function __construct(private OrderRepository $repo) { ... }
}
Phase 2: Event & ORM Bridge
// Listen to OroCommerce event
Event::listen(OroOrderEvents::POST_CREATE, function ($event) {
event(new \App\Events\OrderCreated($event->getOrder()));
});
Phase 3: Configuration Merge
oro/config.yml into Laravel’s config/dylvn.php.Phase 4: Testing & Validation
oro/process). Tree-shaking or custom installers may be needed.App\Exceptions\Handler would need custom logic to catch Oro-specific exceptions.Oro\Message) may require adapters.| Scenario | Impact | Mitigation |
|---|---|---|
| OroCommerce API Breaking Change | Bundle fails in Laravel | Isolate behind feature flags. |
| Doctrine ORM Incompatibilities | Query |
How can I help you explore Laravel packages today?