ibexa/core
Ibexa Core is the foundation of the Ibexa DXP, providing the PHP domain model, repository API, content types, users, permissions, search, and persistence layer integrations. It powers content management features and serves as the base for higher-level Ibexa packages.
HttpKernel, DependencyInjection) via symfony/http-kernel-bundle or symfony/dependency-injection.Guzzle).ibexa_render) can be adapted for Laravel’s Blade via custom directives or middleware.ibexa:io:migrate-files) for data migration, but Laravel’s migrations would need to avoid conflicts (e.g., shared tables).SiteAccess) may require middleware to bridge Laravel’s session storage.| Risk Area | Description | Mitigation |
|---|---|---|
| Symfony Dependency Bloat | Pulling in Symfony components may increase Laravel’s footprint. | Use composer scripts to isolate Symfony dependencies (e.g., require-dev). |
| Database Schema Conflicts | Ibexa’s schema (e.g., ibexa_content, ibexa_object) may clash with Eloquent. |
Use separate databases or schema prefixes. |
| Caching Complexity | Ibexa relies on Symfony Cache (APCu, Redis, etc.). Laravel’s cache may need alignment. | Configure shared cache backends (e.g., Redis) or use proxy caches. |
| Performance Overhead | Ibexa’s content repository is heavyweight for lightweight Laravel apps. | Use PAPI for read-heavy workloads; offload writes to Laravel’s Eloquent. |
| Versioning & Migrations | Ibexa’s versioning system may conflict with Laravel’s migrations. | Use Ibexa’s CLI tools for content migrations; keep Laravel migrations separate. |
| Learning Curve | Ibexa’s concepts (SiteAccess, ContentType, FieldTypes) require ramp-up. | Provide internal documentation and training for dev teams. |
| Laravel Component | Ibexa Integration Strategy | Tools/Libraries |
|---|---|---|
| Routing | Use Ibexa’s Symfony routes via HttpKernel or proxy requests to a separate Ibexa service. |
symfony/http-kernel-bundle, Guzzle |
| Dependency Injection | Register Ibexa services in Laravel’s container via Symfony’s DI compiler pass. | symfony/dependency-injection, Laravel Extender |
| Authentication | Sync Laravel’s auth (e.g., Sanctum) with Ibexa’s RBAC via custom guards or OAuth2. | league/oauth2-server, ibexa/api-platform |
| Database | Isolate Ibexa’s schema in a separate database or use schema prefixes. | Doctrine DBAL, Laravel’s Schema::create |
| Caching | Share Redis/Memcached between Laravel and Ibexa; configure cache tags. | symfony/cache, predis/predis |
| Templating | Replace Twig with Blade or use Ibexa’s PAPI for JSON responses. | Custom Blade directives, spatie/array-to-xml |
| Search | Use Ibexa’s Solr/Elasticsearch for advanced search; cache results in Laravel. | elasticsearch/elasticsearch, solarium/solarium |
| CLI/Commands | Expose Ibexa’s CLI tools (e.g., ibexa:content:create) via Laravel Artisan commands. |
symfony/console-bridge |
| Event System | Listen to Ibexa’s events (e.g., ContentPublishEvent) via Symfony EventDispatcher. |
symfony/event-dispatcher |
Phase 1: API-First Integration (Low Risk)
Guzzle).Phase 2: Hybrid Integration (Medium Risk)
HttpKernel in Laravel’s service provider.Phase 3: Full Monolith (High Risk)
ibexa:io:migrate-files.| Compatibility Check | Status | Notes |
|---|---|---|
| PHP Version | ✅ (8.1–8.4) | Ibexa supports PHP 8.3/8.4; Laravel 10+ is compatible. |
| Symfony Components | ✅ (7.4 LTS) | Laravel can host Symfony 7.x via symfony/http-kernel-bundle. |
| Doctrine DBAL | ✅ | Laravel’s Eloquent can coexist if schemas are isolated. |
| Composer Dependencies | ⚠️ (Potential Conflicts) | Use composer.json overrides or platform-check. |
| Authentication ( |
How can I help you explore Laravel packages today?