ezpublish-core, ezpublish-kernel) that are incompatible with Laravel’s ecosystem.Content, Location, ContentType) are non-portable to Laravel’s ORM (Eloquent) or database-agnostic layers.DependencyInjection, EventDispatcher), which requires Symfony Container integration—not natively supported in Laravel. Workarounds (e.g., symfony/dependency-injection) would add complexity.register()/boot() methods for Laravel’s ServiceProvider system.EzPublishCoreBundle, which is incompatible with Laravel’s routing (RouteServiceProvider) and middleware stack.PersistenceHandler), while Laravel uses Eloquent or Query Builder. Direct mapping is non-trivial.symfony/console, symfony/dependency-injection, and symfony/event-dispatcher as standalone libraries to partially replicate the bundle’s structure, but this is high-effort with no guaranteed compatibility.| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Architectural Mismatch | Critical | Avoid direct integration; refactor migration logic. |
| Deprecated Dependencies | High | eZ Platform Legacy is unsupported; may introduce security/bug risks. |
| Lack of Maintenance | High | Last release in 2018; no Laravel support. |
| Database Schema Lock-in | Medium | eZ-specific tables (e.g., ezcontentobject, ezcontentobject_attribute) may not map cleanly to Laravel’s schema. |
| Testing Overhead | High | Custom integration would require extensive testing. |
ContentType, FieldTypes)? Can they be mapped to Eloquent models?spatie/laravel-migration been considered?EventDispatcher (for migration hooks).Repository and Persistence layers.Event facade) for hooks.| Option | Feasibility | Effort | Risk |
|---|---|---|---|
| Direct Integration | ❌ Low | High | Critical |
| Symfony Bridge | ⚠️ Medium | Very High | High (maintenance) |
| Refactor Migration Logic | ✅ High | Medium | Low |
| Custom Laravel Migration Tool | ✅ High | Medium | Low |
Recommended Path:
Content → Location mappings, FieldType changes).php artisan migrate:content).ezcontentobject, ezcontentobject_tree). Laravel’s migrations can recreate these, but relationships (e.g., ezcontentobject_attribute) may require custom logic.ezpublish-core-bundle (❌ Incompatible).doctrine/dbal (✅ Compatible, but Laravel uses Eloquent by default).doctrine/dbal directly in Laravel for raw SQL operations.ezmigration:migrate). Laravel’s Artisan can replicate this, but command structure would differ.Schema::create('ezcontentobject', function (Blueprint $table) {
$table->id();
$table->string('contentclass_id');
// ... other fields
});
ContentType handling) with Laravel’s model events or policies.How can I help you explore Laravel packages today?