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

Ezprestapiprovider Ls Laravel Package

ezsystems/ezprestapiprovider-ls

Provides a REST API provider for the eZ Publish Legacy Stack, letting applications access content and repository data through RESTful endpoints. Useful for integrating legacy eZS Publish sites with modern services and decoupled front ends.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Correcting the premise first: this is not a Laravel package. ezsystems/ezprestapiprovider-ls is a Composer-distributed extension for the eZ Publish Legacy Stack (the -ls suffix denotes legacy-stack compatibility). It exposes REST API v1/v2 endpoints over the eZ Publish 4.x/5.x legacy content kernel. It has no service provider, no package discovery, no PSR-4 autoloading into a modern application, and no relationship to Laravel's contracts. Metadata on record: 13 stars, 0 dependents, last release 2014-11-01, repository archived.

Architecture fit: near-zero for in-process use. The extension boots inside eZ Publish's module/view/INI override system and depends on the legacy content model — content classes, attributes, nodes, sections, roles, workflows. It is a REST facade over a content repository, not a standalone library. The only architecturally sound relationship is a network boundary: a modern app consumes its HTTP API as an external system.

Integration feasibility: feasible only as a sidecar, and only if you already operate an eZ Publish legacy estate. You would run PHP 5.6/7.0-era runtime, MySQL 5.x, and a full legacy instance alongside your modern app. Without an existing estate, the package is worthless — it has nothing to serve.

Technical risk: high to extreme.

  • Archived since ~2014 with no maintenance; the surrounding PHP 5.x runtime is EOL and unpatched.
  • License is NOASSERTION — GitHub could not identify it. eZ Publish historically shipped GPL-2.0 with eZ-specific clauses; redistribution or embedding requires explicit legal determination.
  • Zero dependents and 13 stars: no ecosystem, no community fix path, no upstream.
  • API contract frozen at 2014; session/auth semantics predate modern token practices.
  • The product line it targets was superseded by eZ Platform / Ibexa DXP; documentation is stale and versioned against a dead release.

Key questions:

  • Do we already run an eZ Publish legacy estate with content we cannot migrate? If no, stop here.
  • Which surface do we need — v1 or v2, read-only or write, which resources?
  • What does legal conclude on the license, and does GPL-2.0 (or eZ clauses) contaminate our distribution model?
  • Is the actual requirement "REST over legacy content" or "a modern content API"? If the latter, the comparison set is Ibexa DXP or a headless CMS, not this package.
  • Can we isolate to a network boundary with no shared DB or credentials, and who owns the legacy host over the next 12–24 months?

Integration Approach

Stack fit: none at the framework layer. The only viable pattern is a strangler-style adapter — the modern application as system of record for new functionality, with a thin HTTP client (Guzzle / Laravel Http facade) to the legacy REST provider acting as an anti-corruption layer. Treat the provider's JSON as an unstable external contract: map to your own DTOs and never let its schema leak into domain models.

Migration path:

  1. Inventory the legacy content model (classes, attributes, nodes, sections, roles) and map the subset the REST API actually exposes. Expect gaps — the provider offers a generic content API, not your domain.
  2. Stand up a disposable environment: PHP 5.6/7.0 container, MySQL 5.7, eZ Publish legacy with the extension activated, sanitized content snapshot. Treat this infrastructure as throwaway.
  3. Prove the surface with contract tests (Postman/Newman or Pest against the sidecar) covering auth, content read, content write, binary/attribute handling, and error shapes.
  4. Build the client behind an interface (LegacyContentGateway) with a fake implementation for tests so the dependency stays swappable.
  5. Decide explicitly: read-only proxy, full read/write, or freeze. Most teams should land on read-only to support migration.

Compatibility: no Composer constraint will ever resolve against a modern Laravel application — do not attempt to require it. Pin the sidecar image by digest. If the legacy instance is not already in production, standing one up usually costs more than reimplementing the handful of endpoints you need against a database copy.

Sequencing: license/legal review → content-model inventory → timeboxed disposable PoC (2–3 weeks) → go/no-go on sidecar vs. one-time bulk export → if go, build ACL, client adapter, contract tests → migrate consumers behind the adapter → schedule retirement. The go/no-go decision is the real deliverable; the integration is an optional output.

Operational Impact

Maintenance: effectively unmaintainable. Archived repo, no maintainer, no CVE feed, no dependency updates. Any fix is a fork you own — budget for it explicitly or accept drift until the runtime becomes unhostable. The 2014 release means the PHP runtime, not the package, is the primary end-of-life driver.

Support: none. No vendor, no community triage, no issue response. The burden falls entirely on whoever onboards the legacy stack. eZ Publish legacy skills are scarce and shrinking; hiring is a real constraint, not a footnote.

Scaling: the provider is stateless PHP and scales horizontally behind a load balancer, but it shares the legacy MySQL instance and content cache — so the database and content model are the bottleneck, not the app tier. Write paths around nodes and attributes are prone to lock contention. Plan read replicas, aggressive HTTP caching on GETs (CDN or reverse proxy), and write rate limits.

Failure modes:

  • Content model drift — editors change classes/attributes in the legacy admin; response shape shifts silently and mapped DTOs break. Catch with schema assertions in contract tests.
  • Session/auth expiry under legacy session handlers; long-lived tokens are poorly supported.
  • Attribute and binary handling differs across eZ versions — files and images frequently surface as URLs or raw XML.
  • Non-JSON error bodies — legacy errors often return XML or HTML; the client must not assume JSON on non-2xx.
  • Environment rot — PHP 5.x containers accumulate unpatchable dependencies and will eventually fail a security review or compliance gate.

Ramp-up: 4–8 weeks for a competent PHP engineer to become productive on eZ Publish legacy conventions (module/view, INI overrides, content model, role system), assuming they can find current documentation at all. That ramp-up is a sunk cost if the strategic direction is migration away — which is why an adapter plus a firm retirement date is the only responsible shape. Given 13 stars, 0 dependents, an archived repository, an unresolved license, and a 2014 release, my recommendation is to treat this package as documentation of a legacy API contract only; do not make it a production dependency.

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.
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib