ibexa/admin-ui
Back-office UI package for the Ibexa DXP admin panel, providing interface components, styling, and assets to manage content and users. Extends the admin experience with ready-to-use views, widgets, and integrations for Ibexa installations.
Ibexa DXP Integration: This package is exclusively tied to Ibexa DXP (formerly eZ Platform Enterprise), a headless CMS with a PHP/Laravel-based backend. It is not a standalone Laravel package but a bundled component of Ibexa’s ecosystem. A TPM must assess whether the project aligns with:
BaseFieldValidator), which could be repurposed in Laravel if Ibexa’s API layer is abstracted.Monolithic vs. Modular: The package is tightly coupled with Ibexa’s backend APIs (e.g., NodeFactory, translation endpoints). Extracting it for Laravel would require significant refactoring to decouple Ibexa-specific logic.
Laravel Stack Fit:
BaseFieldValidator). Could integrate with Laravel’s Inertia.js or Livewire for reactivity.symfony/http-client) to call Ibexa APIs from Laravel.Key Dependencies:
ez-field-edit-* selectors, NodeFactory).symfony/*@7.4 LTS (e.g., symfony/ux, symfony/form). Laravel 10+ is compatible, but version alignment is critical.| Risk Area | Assessment | Mitigation Strategy |
|---|---|---|
| Vendor Lock-in | Ibexa-specific APIs (e.g., IBX-* issues) make extraction risky. |
Abstract Ibexa calls behind a facade layer (e.g., IbexaApiClient). |
| Version Skew | Ibexa v5.x requires Symfony 7.4; Laravel 10+ may need adjustments. | Use Laravel Symfony Bridge or container aliases. |
| Frontend Complexity | React-like JS components may conflict with Laravel’s frontend stack. | Isolate Ibexa UI in micro-frontend (e.g., iframe, Shadow DOM) or rewrite components. |
| Licensing | Dual GPLv2/Ibexa BUL license; GPL may restrict commercial use. | Clarify license terms with legal; consider Ibexa OSS if GPL is acceptable. |
| Long-Term Maintenance | Ibexa’s roadmap may diverge from Laravel’s. | Fork critical components or contribute upstream. |
Business Alignment:
Technical Trade-offs:
Team Capability:
Alternatives:
| Component | Ibexa Admin UI | Laravel Compatibility | Integration Strategy |
|---|---|---|---|
| Backend | Symfony 7.4 | Laravel 10+ (Symfony 7.2+) | Use symfony/http-client or API facade. |
| Frontend (JS) | Custom React-like | Laravel Mix/Vite/Inertia | Isolate in micro-frontend or rewrite. |
| Database | Doctrine ORM | Eloquent | Custom mappers or read models. |
| Routing | Symfony Router | Laravel Router | Proxy Ibexa routes via Laravel middleware. |
| Assets | Webpack Encore | Laravel Mix/Vite | Replace build tools or use static assets. |
| Validation | BaseFieldValidator |
Laravel Form Requests | Extend BaseFieldValidator for Laravel forms. |
Phase 1: API Abstraction
IbexaApiClient) to wrap Ibexa’s REST/GraphQL endpoints.class IbexaApiClient {
public function validateField(array $data): array {
return Http::post('https://ibexa-api/validate', $data)->json();
}
}
Phase 2: Frontend Isolation
Phase 3: Data Layer
class IbexaContentMapper {
public function toLaravelContent(IbexaContent $content): array {
return [
'title' => $content->getTitle(),
'body' => $content->getField('body')->value,
];
}
}
Phase 4: Hybrid Workflow
symfony/ux) may need adjustments..ez-field-edit-*). Override or extract into a CSS module.Proof of Concept (PoC):
Http::get('ibexa-api/endpoint')).BaseFieldValidator in a Laravel form.Incremental Rollout:
Fallback Plan:
Dependencies:
Support:
IBX-11376) require Ibexa’s support team.Tooling:
How can I help you explore Laravel packages today?