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

Ezie Ls Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

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:

  • Licensing: GitHub reports 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.
  • Security: Archived since ~2014 with 27 stars and zero dependents. No CVE monitoring, no patch stream, no maintainer. Any vulnerability in the upload, image-processing, or ACL path becomes yours to find and fix.
  • Correctness: Permission checks are delegated to eZ Publish ACLs. Bolting this beside Laravel's Gate/Policy layer creates two authorisation truths — the classic silent-privilege-escalation pattern on file upload endpoints.
  • Data model: It reads and writes ezcontentobject_attribute and image alias metadata directly. That schema is not your Eloquent schema, and coupling to it forecloses future content-model changes.
  • Abandonment: Zero dependents means no downstream forks, no issue traffic, no Stack Overflow corpus. You are the only operator on earth running this combination.

Key questions for the requester.

  1. Is the actual requirement "users can crop/rotate a photo before it is stored," or specifically "reuse eZ Image Editor"? The former is a two-day Laravel task; the latter is a legacy-platform commitment.
  2. Are we already operating eZ Publish 4? If not, this package has no viable host.
  3. Has legal confirmed the licence and the GPL derivative-work position?
  4. Does the editor UI genuinely function without Flash in 2024 browsers, verified in a spike?
  5. What is the business owner's tolerance for an unpatched, unsupported code path handling user-uploaded files?

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.

Integration Approach

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:

  • Deploy eZ Publish 4 with the 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/.
  • Terminate TLS and route at the proxy. Do not attempt to share a session cookie format; issue a short-lived signed bridge token from Laravel and have a thin legacy endpoint exchange it for an eZ Publish session, or run the legacy surface on a separate hostname with an SSO handoff.
  • Isolate storage. The legacy stack wants 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.
  • Make all content exchange one-directional and asynchronous: Laravel writes a queue job, a legacy-side worker creates the content object and image aliases, and only the resulting identifiers flow back. Never let both systems write the same attribute.

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.

  1. Usage audit — which editing operations do users actually perform? Which content classes carry edited images?
  2. Legal — licence determination and derivative-work opinion.
  3. Two-day technical spike in a disposable container: can the extension be booted at all, and does the editor UI render and save?
  4. If the spike passes, build the proxy/SSO/storage isolation boundary and prove one round-trip end to end.
  5. In parallel from day one, start the native Laravel replacement; treat the legacy surface as a bridge with a scheduled demolition date.
  6. If the spike fails — the likely outcome — close the initiative and go straight to step 5.

Operational Impact

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.

  • Authorisation drift — legacy ACL and Laravel policies diverge; a user who should not edit an image can, or vice versa. Highest-severity risk because it's silent.
  • Upload handling — unpatched file-validation code on a public endpoint. Enforce MIME sniffing, size limits, and image re-encoding at the proxy before the legacy tier ever sees the bytes.
  • Editor non-function — Flash deprecation turns the UI into a blank pane with no server-side error. Monitor client-side failures, not just HTTP 5xx.
  • Storage divergence — orphaned files in var/storage after a Laravel-side delete, or vice versa. Requires a reconciliation job and orphan sweeps.
  • Runtime expiry — the PHP 5.x base image stops receiving OS-level security updates; the container becomes the weakest link even if the PHP code is untouched.
  • Silent data corruption — concurrent writes to the same 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.

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.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel