ezsystems/ezie-ls
ezie-ls is a Language Server Protocol implementation for eZ Systems projects, bringing autocomplete, diagnostics, and editor tooling for eZ templates to PHP and eZ Platform development workflows.
What this package actually is. The Composer name ezsystems/ezie-ls resolves to the ezsystems/ezie repository. The -ls suffix denotes a Legacy Stack binding: this is an extension for eZ Publish 4.x (the legacy kernel), not a standalone library and categorically not a Laravel package. It provides the server-side integration for eZ Image Editor — module/view routing, ACL checks, .ini settings overrides, and the datatype/alias plumbing that lets the editor read and write ezimage attributes on content objects. There is no service provider, no facade, no PSR-4 autoloadable domain layer, and no Illuminate dependency of any kind.
Architecture fit. Effectively zero for a Laravel application. The package assumes the eZ Publish extension model: it is discovered by the legacy kernel from extension/ezie/, registered through ActiveExtensions[] in settings/override/site.ini.append.php, and participates in eZModule dispatch. Its behaviour is configured by ini files, not config files or environment variables. Any "integration" is really a co-hosting exercise — two frameworks with two routers, two session stores, two ACL systems, and two asset pipelines sharing one document root and one database. That is an architectural liability, not an integration.
Integration feasibility. Low, and dropping to near-zero on any modern runtime. The 2014 release date places it in the PHP 5.3/5.4 era; it will not run on PHP 8.x without remediation for removed language constructs and deprecated APIs, and the surrounding eZ Publish 4 kernel is itself long out of support. The browser-side editor component historically depended on Flash, which reached end-of-life in December 2020 and is blocked by default in every current browser — so even a successful PHP-side resurrection may deliver a non-functional editing UI. Dependency resolution is also a blocker: ezpublish-legacy is not installable into a Laravel composer.json without conflict against modern Symfony components.
Technical risk. Severe and compounding:
NOASSERTION. The eZ Publish 4 ecosystem is predominantly GPL-2.0, which carries derivative-work obligations that are incompatible with a proprietary Laravel product. Legal review is a hard prerequisite, not a formality.Gate/Policy layer creates two authorisation truths — the classic silent-privilege-escalation pattern on file upload endpoints.ezcontentobject_attribute and image alias metadata directly. That schema is not your Eloquent schema, and coupling to it forecloses future content-model changes.Key questions for the requester.
Recommendation: do not adopt. This is a 2014 archived legacy-platform extension with an unresolved licence, not a candidate for a Laravel codebase. The only defensible reason to touch it is if you are already contractually locked into eZ Publish 4 and need to restore existing functionality — in which case treat it as a time-boxed containment exercise with a documented exit plan.
Stack fit. None. A Laravel application expects PSR-4 autoloading, service-container binding, Laravel's HTTP kernel and middleware stack, Blade/Vite asset compilation, Eloquent or a repository layer, and Laravel's auth and authorisation primitives. ezsystems/ezie-ls supplies none of these and actively conflicts with several. It is not "a package you install"; it is "a platform you host."
If you must integrate anyway, the only workable topology is strangler-adjacent co-hosting, not Composer installation:
ezie extension in its own document root, containerised on PHP 5.6 (or the highest 5.x the kernel tolerates), behind a reverse proxy at a sub-path such as /legacy/.var/storage and its own image alias cache. Keep that on a separate volume or bucket prefix; do not let it write into Laravel's storage/app/public.Migration path. There isn't a migration from this package — there's a migration off it. The realistic path is: reproduce the editor capability natively in Laravel (upload endpoint → Spatie\MediaLibrary or equivalent for storage and conversions → Intervention\Image or a Glide-style on-demand transformer → a modern JS editor such as Fabric.js, Toast UI Image Editor, or Pintura on the front end), then decommission the legacy surface once parity is demonstrated on the top handful of editing operations actually in use. Inventory real usage before anything else; most legacy image-editor deployments exercise a shockingly small fraction of the feature set.
Compatibility. Blocks to clear in order: (1) legal sign-off on the NOASSERTION licence; (2) confirm a PHP runtime that still executes the kernel and its extensions; (3) confirm the front-end editor loads in Chrome/Edge/Safari without Flash; (4) confirm database driver compatibility and whether the legacy schema can coexist in the same database as Laravel's tables with a distinct prefix and a separate credentials set.
Sequencing.
Maintenance. Total. With the repository archived and zero dependents, there is no upstream to patch, no maintainer to escalate to, and no community to consult. Every defect, CVE, PHP-version break, and browser-compatibility regression lands on your team. Budget ongoing engineering time, not a one-off integration cost — this is a permanently staffed liability. Vendoring the source into your own repository and taking ownership formally is the honest framing; "we depend on the package" is not.
Support. None. No vendor, no SLA, no current documentation — the eZ Publish 4 docs are themselves archived. Internal knowledge will be reconstructed from source reading. Expect a bus factor of one.
Scaling. Constrained by the legacy kernel rather than by the code itself. PHP 5.6 is single-threaded per request and long out of security support; the image alias cache writes to local disk by default, which fights horizontal scaling and requires a shared volume or object-store shim; image transformations are synchronous and memory-hungry, so large uploads become a DoS vector on the legacy tier. Realistically this component scales vertically and stays small; anything at volume needs the native replacement.
Failure modes to watch.
var/storage after a Laravel-side delete, or vice versa. Requires a reconciliation job and orphan sweeps.ezimage attribute from both stacks. Prevent with strict single-writer ownership per content class.Ramp-up. Steep and unrewarding. A competent Laravel developer will not have encountered eZ Publish 4; the learning path is archived docs plus reading the kernel source to understand module dispatch, ini cascades, datatype handlers, and the ACL model. Estimate four to six weeks before a mid-level engineer is productive inside the legacy tier, versus roughly two days to become productive with a modern Laravel image-editing stack. The acquired knowledge has no transferable market value and no successor relevance — Ibexa DXP shares the brand but not the extension architecture. Prefer spending that ramp-up budget on the native replacement, where the skills compound.
How can I help you explore Laravel packages today?