code-rhapsodie/ezdataflow-bundle
ContentService, ContentWriter, etc.). This makes it a natural fit for Ibexa-based projects requiring structured data imports/exports.ContentService) to Laravel equivalents (e.g., Eloquent models, custom repositories).DataTransferObjects or API resources).ContentService, LocationService, and ContentTypeService.Messenger for queue handling (can be replaced with Laravel Queues via custom middleware).| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Ibexa-Specific Logic | High | Abstract Ibexa dependencies behind interfaces to allow Laravel mocks/stubs. |
| Queue System Mismatch | Medium | Build a Laravel queue adapter for Symfony Messenger or rewrite job handling. |
| UI Dependency | High | Replace Ibexa UI with a Laravel Nova/Inertia.js dashboard or REST API endpoints. |
| Field Type Support | Medium | Extend AbstractFieldComparator for Laravel’s field types (e.g., HasMany, MorphTo). |
| Performance | Medium | Test with large datasets; optimize batch processing in Laravel’s queue workers. |
| Maintenance Overhead | High | Fork the bundle or contribute upstream to reduce divergence from Laravel’s ecosystem. |
ezrichtext, ezobjectrelation) supported in Laravel’s ORM?CronTrigger?ShouldQueue vs. Symfony’s retry logic)?| Component | Laravel Equivalent | Compatibility Notes |
|---|---|---|
| Ibexa Services | Eloquent Models / Custom Repositories | Requires adapters (e.g., ContentService → ContentRepository). |
| Symfony Messenger | Laravel Queues (Redis/Db/Horizon) | Custom queue worker or middleware to bridge Symfony messages to Laravel jobs. |
| Twig Templates (UI) | Blade/Inertia.js/Vue.js | Replace Ibexa UI with a Laravel admin panel or API-driven frontend. |
| Doctrine DBAL | Laravel Query Builder / Eloquent | Use DBAL abstraction for schema updates. |
| Symfony EventDispatcher | Laravel Events | Replace with Laravel’s event system. |
| YAML Configuration | Laravel Config / .env |
Convert YAML to Laravel’s config/ezdataflow.php. |
composer require code-rhapsodie/ezdataflow-bundle code-rhapsodie/dataflow-bundle
config/bundles.php.ezdataflow.yaml).CronTrigger or integrate with Laravel’s scheduler via custom commands.DataflowType classes (e.g., ArticleImportDataflow).ContentWriter and ContentStructureFactory as-is.ContentService, LocationService, etc.EloquentContentService).HandleDataflowJob).// Laravel Queue Job
class ProcessDataflow implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable;
public function handle()
{
$dataflow = new MyDataflowType();
$dataflow->run();
}
}
AbstractFieldComparator for Laravel’s field types (e.g., MorphToMany).config/ezdataflow.php:
// config/ezdataflow.php
return [
'admin_login_or_id' => env('DATAFLOW_ADMIN_USER', 'webmaster'),
'parent_location_ids' => [
'articles' => env('ARTICLE_PARENT_LOCATION', 54),
],
];
Log facade).How can I help you explore Laravel packages today?