Weave 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

Ezobject Relationlistplus Bundle Laravel Package

xrow/ezobject-relationlistplus-bundle

xrow/ezobject-relationlistplus-bundle extends eZ Platform’s object relation list functionality with an enhanced field type for configuring, storing, and rendering relationships between content objects in editorial workflows.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What this package actually is. Despite being evaluated alongside Laravel/PHP packages, xrow/ezobject-relationlistplus-bundle is not a Laravel package. It is a Symfony bundle written for eZ Publish 5.x (the legacy eZ Systems CMS, now Ibexa). It exists only to register and fix a custom datatype, eZobjectRelationListPlus, which extends eZ Publish's built-in object relation list field so editors can attach attributes (e.g., priority, custom labels) to related content items. It is a site-specific patch published publicly, not a general-purpose library.

Architecture fit.

  • The bundle assumes the eZ Publish 5 legacy kernel (ezpublish-kernel, eZ\Bundle\EzPublishCoreBundle), Symfony 2.x, and the eZ Publish content model (content classes, datatype mappings, legacy eZContentObject storage).
  • A Laravel application has no eZ Publish kernel, no content repository, and no datatype registry. There is no seam where this code can be dropped in. Making it "fit" would mean standing up an eZ Publish 5 instance beside Laravel and bridging the two — a substantial, high-cost architecture decision that the package itself does not solve.
  • Conclusion: architecturally incompatible with Laravel; fit is only plausible inside an existing eZ Publish 5 estate, and even there only if the custom datatype is required for content-class definitions.

Integration feasibility.

  • For a Laravel stack: not feasible as a dependency. composer require xrow/ezobject-relationlistplus-bundle would drag in an incompatible Symfony/eZ dependency graph and cannot be autoloaded or bootstrapped meaningfully.
  • For an eZ Publish 5 stack: feasible but fragile — requires matching eZ 5.x version, registering the bundle in the kernel, and ensuring the datatype is installed and content classes are re-mapped. The "fix" nature of the package means it patches behavior that may differ across eZ point releases.
  • No documentation, no tests, no CI badges, no changelog beyond a single 2016 tag; integration knowledge would have to be reverse-engineered from source.

Technical risk.

  • Abandonment: last release March 2016; ~10 years without maintenance. No security patching, no PHP 7/8 compatibility work, no Symfony 3+ support.
  • Runtime: targets PHP 5.x-era code; running it on a modern PHP runtime is unlikely without modification.
  • Supply chain: 0 stars, 0 dependents, 0 forks — effectively no community scrutiny. Nothing validates correctness or safety.
  • Bus factor: single-vendor (xrow GmbH) artifact tied to a specific client engagement; no guarantee of upstream responsiveness.
  • Scope risk: a custom datatype touches content storage and editorial workflows; bugs surface as corrupted or unreadable content relations, which is a high-blast-radius failure domain.

Key questions.

  1. Is there an actual eZ Publish 5 estate in scope, or was this surfaced by a generic package scan? (Almost certainly the latter.)
  2. If eZ is in scope, is this datatype already in production on that estate? If not, why introduce it?
  3. What is the migration target — Ibexa DXP, Laravel, or a headless CMS? That determines whether this is a keep, fork, or discard.
  4. Who owns the eZ 5 runtime (PHP version, Symfony version) and can it be upgraded at all?
  5. Can the editorial requirement (relation lists with attributes) be met by a modern first-class feature rather than a 2016 patch?

Integration Approach

Stack fit.

  • Laravel (target): No fit. Do not add this as a Composer dependency. If the underlying business requirement — "related content with per-relation metadata" — is real, implement it natively in Laravel with Eloquent: a polymorphic pivot model (e.g., relatable_type, relatable_id, related_type, related_id, plus attribute columns) or a JSON column for flexible attributes. That is a few days of work, fully tested, and maintainable.
  • eZ Publish 5 (legacy): Fit exists but is narrow. Treat as an internal, vendored artifact rather than an upstream dependency: fork it, pin the version, and own it.

Migration path.

  1. Classify the requirement. Confirm whether eZobjectRelationListPlus behavior is live anywhere. If yes, inventory the content classes and templates that depend on it.
  2. Fork, don't require. Vendor the source into the repo (or a private VCS) so upstream deletion or breakage cannot affect you. Add a composer.json with explicit platform constraints.
  3. Modernize the datatype layer. If staying on eZ, port the datatype to a supported PHP/Symfony combination before any other work — this is the gating task.
  4. Plan the exit. If the estate is moving to Ibexa DXP or off eZ entirely, model the relation-plus-attributes requirement in the target platform first, migrate data (relation lists plus attribute values), and decommission the datatype afterward.
  5. Retire, if unused. In the likely case this is an unused scan artifact, record a "no action / do not adopt" decision and move on.

Compatibility.

  • PHP: 5.4–5.6 era likely; verify against the shipped composer.json constraints.
  • Symfony: 2.x only.
  • eZ Publish: 5.x kernel; point-release sensitivity is unknown and must be tested.
  • No Laravel, Lumen, or standalone-PHP compatibility of any kind.

Sequencing.

  • Week 1: requirement validation and estate inventory (does anything actually need this?).
  • Weeks 2–3: if needed, vendor + pin + pin platform versions; stand up a test instance and reproduce datatype behavior.
  • Weeks 4+: only then attempt runtime modernization or the target-platform reimplementation.
  • If unused: close out immediately with a decision record. Do not spend further effort.

Operational Impact

Maintenance.

  • Effectively zero upstream maintenance. All upkeep — PHP upgrades, Symfony upgrades, security patches, bug fixes — becomes internal engineering cost the moment it is adopted.
  • The code is small (a datatype plus a bundle registration), so the absolute maintenance burden is low, but it is a permanent internal liability with no external amortization.
  • No tests ship with the package; any regression safety net must be written from scratch.

Support.

  • No vendor SLA, no issue-triage history, no community. Escalation path is "email the original authors and hope," which is not a support model.
  • Internal runbook required: how the datatype is registered, how it is configured per content class, what happens if it is removed, and how content is recovered if a relation is written incorrectly.

Scaling.

  • Relation lists expand into additional joins/queries against the content object store. On a legacy eZ 5 stack, the bottleneck is the eZ content repository and its cache layer, not this bundle — but the bundle adds per-relation attribute hydration that is not optimized for scale.
  • Practical ceiling: fine for editorial sites with thousands of objects; risky for catalog-scale content with dense relation graphs. The package offers no pagination or batching behavior of its own.

Failure modes.

  • Datatype mismatch: the custom datatype not registered, or registered under a different identifier, yields empty relation lists in templates — silent content breakage rather than an error.
  • Content class drift: attributes added by the plus-type not present in stored data; templates rendering undefined fields.
  • Upgrade breakage: an eZ point release changing the datatype API or the legacy kernel bridge.
  • Vendor disappearance: GitHub repository removal or archival; recoverability depends entirely on whether you vendored it.
  • Version-resolution failure: Composer conflicts with modern dependency graphs, blocking unrelated upgrades in the same project.

Ramp-up.

  • Familiarity required: eZ Publish 5 content model, datatype API, legacy kernel bridging, and Symfony 2 bundle conventions. That skill set is increasingly scarce and expensive in 2025+; expect meaningful onboarding time for anyone who has not worked with eZ 5.
  • Laravel-only team: ramp-up cost is effectively unbounded, because the prerequisite is learning an unrelated, end-of-life CMS. Estimate weeks-to-months, not days.
  • Recommended posture: do not adopt for a Laravel initiative. If an eZ Publish 5 estate genuinely depends on it, treat it as a frozen internal fork with an explicit decommissioning plan, and budget the reimplementation of the underlying editorial requirement — relation lists with per-relation attributes — on the target platform, where it is a straightforward and well-understood data-modeling exercise.
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.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox