Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Admin Ui Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • 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:

    • Ibexa DXP adoption (enterprise CMS use case).
    • Laravel compatibility (Ibexa DXP is built on Symfony/Laravel, but this UI bundle is not a generic Laravel package—it’s Ibexa-specific).
    • Custom field validation (via 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.

Integration Feasibility

  • Laravel Stack Fit:

    • Frontend (JS): The UI uses modern JS (ES6+) with a React-like component structure (e.g., BaseFieldValidator). Could integrate with Laravel’s Inertia.js or Livewire for reactivity.
    • Backend (PHP): Ibexa DXP uses Symfony bundles, while Laravel uses service providers. Bridging would require:
      • API abstraction layer (e.g., REST/GraphQL) to interact with Ibexa’s backend.
      • Custom Symfony bridge (e.g., symfony/http-client) to call Ibexa APIs from Laravel.
    • Database: Ibexa uses Doctrine ORM, while Laravel uses Eloquent. Migrating data would need custom mappers.
  • Key Dependencies:

    • Ibexa DXP Core: Mandatory for full functionality (e.g., ez-field-edit-* selectors, NodeFactory).
    • Symfony Components: Uses symfony/*@7.4 LTS (e.g., symfony/ux, symfony/form). Laravel 10+ is compatible, but version alignment is critical.
    • Webpack Encore: For asset bundling (could replace with Laravel Mix/Vite).

Technical Risk

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.

Key Questions for the TPM

  1. Business Alignment:

    • Is Ibexa DXP a core requirement, or is this a one-off UI component?
    • Would a custom Laravel admin panel (e.g., Nova, Filament) be preferable to Ibexa’s UI?
  2. Technical Trade-offs:

    • Can we abstract Ibexa’s API to work with Laravel’s Eloquent?
    • Should we rewrite the JS components to use Laravel’s frontend stack (e.g., Livewire) instead of Ibexa’s?
  3. Team Capability:

    • Does the team have Symfony/Laravel + Ibexa expertise?
    • Is there budget for custom integration work (e.g., API bridges, UI isolation)?
  4. Alternatives:

    • Are there Laravel-native admin UI packages (e.g., Filament, Nova) that could replace Ibexa’s functionality?
    • Could Ibexa’s headless API be used with a separate frontend framework (e.g., Next.js)?

Integration Approach

Stack Fit

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.

Migration Path

  1. Phase 1: API Abstraction

    • Create a Laravel service (IbexaApiClient) to wrap Ibexa’s REST/GraphQL endpoints.
    • Example:
      class IbexaApiClient {
          public function validateField(array $data): array {
              return Http::post('https://ibexa-api/validate', $data)->json();
          }
      }
      
  2. Phase 2: Frontend Isolation

    • Option A: Embed Ibexa UI in an iframe or Shadow DOM (minimal coupling).
    • Option B: Rewrite JS components to use Laravel Livewire/Inertia (higher effort, better alignment).
  3. Phase 3: Data Layer

    • Use read models to sync Ibexa data with Laravel’s database.
    • Example:
      class IbexaContentMapper {
          public function toLaravelContent(IbexaContent $content): array {
              return [
                  'title' => $content->getTitle(),
                  'body' => $content->getField('body')->value,
              ];
          }
      }
      
  4. Phase 4: Hybrid Workflow

    • Use Ibexa for content management and Laravel for business logic (e.g., e-commerce).
    • Example:
      • Ibexa Admin UI → Laravel API → Ibexa Headless → Laravel Frontend.

Compatibility

  • Symfony 7.4: Laravel 10+ supports Symfony 7.2+, but some components (e.g., symfony/ux) may need adjustments.
  • JavaScript: Ibexa’s JS uses ES6+ modules; ensure compatibility with Laravel’s frontend stack.
  • CSS: Ibexa uses custom styles (e.g., .ez-field-edit-*). Override or extract into a CSS module.

Sequencing

  1. Proof of Concept (PoC):

    • Test Ibexa API calls from Laravel (e.g., Http::get('ibexa-api/endpoint')).
    • Validate BaseFieldValidator in a Laravel form.
  2. Incremental Rollout:

    • Start with read-only Ibexa UI integration.
    • Gradually add write operations (e.g., content creation).
  3. Fallback Plan:

    • If integration is too complex, replace Ibexa UI with Filament/Nova and keep Ibexa as a headless backend.

Operational Impact

Maintenance

  • Dependencies:

    • Ibexa releases quarterly; Laravel follows its own cadence. Version skew may require frequent updates.
    • Symfony bridge adds maintenance overhead (e.g., dependency conflicts).
  • Support:

    • Ibexa-specific issues (e.g., IBX-11376) require Ibexa’s support team.
    • Custom integration bugs fall to the Laravel team.
  • Tooling:

    • Webpack Encore → Replace with Laravel Vite for consistency.
    • Doctrine → No direct maintenance needed if using API abstraction.

Support

  • Team Skills:
    • Requires Symfony + Laravel + Ibexa expertise. Gaps may need training or hiring.
  • Vendor Support:
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor
spatie/laravel-javascript-views