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

Ezplatform Admin Ui Laravel Package

ezsystems/ezplatform-admin-ui

Administration interface bundle for eZ Platform: provides the back‑office UI for managing content, users and settings. Includes navigation, dashboards, content editing screens and related assets, integrating with the eZ Platform/Legacy stack for day‑to‑day site administration.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • Monolithic vs. Modular Fit: The ezsystems/ezplatform-admin-ui is a Symfony bundle designed for eZ Platform v2+, which is a content management system (CMS) built on Symfony. If the target system is Symfony-based, this package integrates cleanly as a modular admin UI layer (replacing or extending the default Symfony admin interface).
  • Laravel Compatibility: Laravel and Symfony are not directly compatible due to differing architectures (Laravel’s Eloquent vs. Symfony’s Doctrine, Laravel’s routing vs. Symfony’s kernel). However, partial integration is possible via:
    • Symfony Bridge: Using symfony/http-foundation or symfony/routing in Laravel.
    • API-Driven Approach: Exposing eZ Platform’s backend via REST/GraphQL and consuming it in Laravel’s frontend (e.g., Livewire, Inertia.js, or a custom SPA).
    • Micro-Frontend Strategy: Embedding the eZ Admin UI as an iframe or micro-frontend within a Laravel app (if UI isolation is acceptable).
  • Key Trade-offs:
    • Pros: Rich CMS admin features (content management, media handling, workflows).
    • Cons: Tight coupling with Symfony’s ecosystem; Laravel’s lightweight philosophy may conflict with eZ’s complexity.

Integration Feasibility

  • Core Features:
    • Content structure management (content types, fields, locations).
    • Media library and asset handling.
    • User/role/permission administration.
    • Workflow and publishing tools.
  • Laravel-Specific Challenges:
    • ORM Mismatch: eZ Platform uses Doctrine, while Laravel uses Eloquent. Data synchronization would require:
      • A custom sync layer (e.g., database views, event listeners, or a message queue like Laravel Queues + Symfony Messenger).
      • API contracts (e.g., GraphQL or REST endpoints) to abstract persistence.
    • Authentication: eZ Platform uses Symfony’s security component, while Laravel uses its own. Options:
      • Shared session storage (e.g., Redis).
      • OAuth2/OpenID Connect for cross-system auth.
    • Routing: Symfony’s router is incompatible with Laravel’s. Solutions:
      • Proxy requests via Laravel’s middleware.
      • Use a reverse proxy (Nginx/Apache) to route /admin to the eZ Admin UI.
  • UI Layer:
    • The admin UI is built with Vue.js (via Symfony UX). In Laravel, this could be:
      • Embedded: Serve the eZ UI as a sub-application (e.g., /admin route).
      • Hybrid: Use Inertia.js to render Vue components alongside Laravel Blade.
      • Standalone: Deploy the eZ Admin UI separately and integrate via iframes or web components.

Technical Risk

Risk Area Severity Mitigation Strategy
ORM Incompatibility High Build API layer (GraphQL/REST) or use database abstraction (e.g., Eloquent Doctrine bridge).
Auth Synchronization Medium Implement OAuth2 or shared session storage (Redis).
Routing Conflicts Medium Use reverse proxy or Laravel middleware to delegate /admin routes.
UI Styling Collisions Low Scope eZ CSS/JS to avoid global conflicts (e.g., shadow DOM or unique namespace).
Performance Overhead Medium Cache eZ API responses; lazy-load admin UI components.
Long-Term Maintenance High Document integration points; plan for Symfony/Laravel version alignment.

Key Questions

  1. Why Laravel?

    • Is the goal to replace eZ Platform entirely, or extend it with Laravel’s features (e.g., custom APIs, SPAs)?
    • Are there specific Laravel advantages (e.g., Tailwind CSS, Livewire) that justify the integration?
  2. Data Strategy

    • Should data live in eZ Platform (Doctrine) or Laravel (Eloquent)?
    • Is a hybrid approach (e.g., Laravel for custom data, eZ for CMS content) viable?
  3. Authentication Flow

    • Should users authenticate once (shared session) or twice (separate logins)?
    • Is SSO (e.g., Keycloak, Auth0) an option?
  4. Deployment Model

    • Monorepo: Combine Laravel and eZ Platform (complex, but unified).
    • Microservices: Separate deployments with API contracts (recommended for scalability).
    • Subdomain/Subpath: /app.laravel and /admin.ezplatform.
  5. Feature Parity

    • Which eZ Platform admin features are critical (e.g., media library vs. user management)?
    • Are there Laravel alternatives (e.g., Spatie Media Library, Nova) that could reduce dependency?
  6. Roadmap Alignment

    • How often does eZ Platform release updates? Can Laravel keep pace?
    • Are there breaking changes in Symfony 6+/7+ that could impact the bundle?

Integration Approach

Stack Fit

Component Laravel Compatibility Workaround
Symfony Bundle ❌ No Use Symfony Bridge or API layer.
Doctrine ORM ❌ No Abstract via GraphQL/REST or use Eloquent Doctrine bridge.
Vue.js Admin UI ✅ Partial Embed via Inertia.js, iframe, or micro-frontend.
Symfony Security ❌ No Replace with Laravel Auth or use OAuth2.
Symfony UX (Vue) ✅ Partial Isolate in a web component or shadow DOM.
Workflows/Publishing ❌ No Reimplement in Laravel or expose via API.

Migration Path

Option 1: API-Driven Integration (Recommended)

  1. Expose eZ Platform as an API:
    • Use eZ Platform’s REST API or build a GraphQL layer (e.g., with webonyx/graphql-php).
    • Example: GET /api/content-types → Return data consumable by Laravel.
  2. Consume in Laravel:
    • Use Laravel HTTP Client or Guzzle to fetch eZ data.
    • Cache responses with Laravel Cache or Redis.
  3. UI Integration:
    • Render eZ UI in Laravel via:
      • Inertia.js (Vue/React frontend).
      • Livewire (for server-side reactivity).
      • Iframe (for full isolation).

Option 2: Symfony Bridge (High Risk)

  1. Install Symfony Components in Laravel:
    composer require symfony/http-foundation symfony/routing
    
  2. Bootstrap Symfony Kernel:
    • Load eZ Platform’s kernel in Laravel’s bootstrap/app.php.
    • Route /admin to Symfony’s AdminController.
  3. Auth Synchronization:
    • Share sessions via Redis or implement OAuth2.
  4. ORM Conflict Resolution:
    • Use database views or event listeners to sync Doctrine ↔ Eloquent.

Option 3: Hybrid Deployment

  1. Deploy eZ Platform separately (e.g., ez.example.com/admin).
  2. Integrate via:
    • Reverse proxy (Nginx/Apache) to route /admin to eZ.
    • Laravel middleware to handle auth before proxying.
  3. UI Composition:
    • Use Laravel Mix or Vite to merge CSS/JS if needed.

Compatibility Matrix

Laravel Feature eZ Platform Admin UI Compatibility Notes
Eloquent ORM ❌ No Requires API layer or Doctrine bridge.
Laravel Auth ❌ No Must integrate with Symfony Security or use OAuth2.
Blade Templates ❌ No UI must be rendered via Inertia.js/iframe or converted to Blade.
Livewire ✅ Partial Can consume eZ API data reactively.
Laravel Queues ✅ Partial Can trigger eZ workflows via API.
Service Providers ❌ No Use Laravel’s service container to wrap eZ API clients.
Middleware ✅ Partial Can proxy requests to eZ or inject auth headers.
Artisan Commands ❌ No
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.
codifyo/ts-generator-bundle
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