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.
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.
NOASSERTION — GitHub could not identify it. eZ Publish historically shipped GPL-2.0 with eZ-specific clauses; redistribution or embedding requires explicit legal determination.Key questions:
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:
LegacyContentGateway) with a fake implementation for tests so the dependency stays swappable.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.
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:
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.
How can I help you explore Laravel packages today?