netgen/ezplatform-search-extra
Netgen EzPlatformSearchExtra extends eZ Platform search with additional criteria, sort clauses, and search handlers, making it easier to build advanced content queries in templates and custom code.
Architecture fit. This is not a Laravel package. netgen/ezplatform-search-extra is a Symfony bundle that extends the eZ Platform (now Ibexa DXP) SearchService SPI — it contributes additional Criterion, CriterionVisitor, and SortClause implementations that plug into the platform's search abstraction over Solr or the Legacy engine. In a Laravel codebase there is no integration surface: no service provider, no facade, no Eloquent/query-builder hook, and the package's dependencies (ezsystems/ezplatform-kernel, ezsystems/ezplatform-search, Symfony 4/5 components) would conflict with or simply sit unused beside Laravel's container. Fit is effectively zero for a Laravel product and high-but-narrow only if we are already running Ibexa/eZ Platform 3.x.
Integration feasibility. Composer installation is technically straightforward but practically gated. A 2021-03-26 release implies pinned constraints around PHP 7.4–8.0 and Symfony 4/5, and the ezsystems/* package namespaces were renamed to ibexa/* in the 4.x line — so on any current Ibexa DXP version this will not resolve without a fork. The exposed functionality (extra search criteria/sort clauses) is a small, self-contained surface, which means the realistic path is to read the source and reimplement the handful of classes rather than take the dependency.
Technical risk. Three material risks. First, licensing: GPL-2.0 is copyleft; if we distribute the product (SaaS is generally fine, on-prem or OEM distribution is not), linking this bundle into proprietary code creates source-disclosure obligations for the derivative work. Second, abandonment: no release in over four years, 13 stars, a single agency maintainer (Netgen), no visible security-response process, and transitive dependencies that will accumulate CVEs we cannot patch without forking. Third, version lock: adopting it pins us to a search-kernel generation that is already two majors behind, blocking PHP 8.2+/Symfony 6 upgrades for the whole application.
Key questions. Are we actually on Ibexa/eZ Platform, and which exact version and search engine (Solr vs. Legacy)? Does the current core already cover the criteria we need — several "extra bits" from this era were absorbed upstream? Is our product distributed on-prem or delivered as a service, and does that make GPL acceptable? Can we consume this as a reference implementation and port the logic in-house under our own license? Who owns ongoing stewardship if we fork, and what is the security review of its locked transitive dependency tree?
Stack fit. Assume Ibexa/eZ Platform 3.x on Symfony 4.4/5.x and PHP ≤8.0. The bundle registers through the Symfony kernel and the platform's search service container; it is inert in a Laravel application. For a Laravel-centric team the honest answer is that this package does not fit the stack at all, and any adoption implies a separate Symfony/Ibexa service.
Migration path. Two viable routes. (a) Fork and rename: update the ezsystems/* constraints to ibexa/*, bump PHP/Symfony, replace the abandoned GPL bundle with an internal, proprietary-licensed one. (b) Reimplement: extract the criterion/sort-clause logic into our own bundle. Given the small surface, (b) is preferred — it removes the GPL question entirely and gives us test ownership. If we are not on Ibexa at all, the correct decision is to not migrate and to solve the search requirement natively.
Compatibility. Expect hard blockers on PHP 8.1+, Symfony 6, and Ibexa 4.x due to the namespace rename and API drift in the search criteria contract. Verify against our actual composer.lock before any spike; a resolution failure will surface immediately and is a cheap early kill signal.
Sequencing. (1) Confirm platform and version; if not Ibexa, stop. (2) Inventory the specific search behaviors we need and test whether core/Ibexa already provides them. (3) Time-box a one-week spike that ports one criterion into an internal bundle with Solr fixtures. (4) If the spike succeeds, port the remainder and retire the external dependency; if it fails, the requirement is more expensive than the package's star count suggests and should be re-scoped.
Maintenance. Treat as unmaintained and fully owned by us from day one. Budget ongoing engineering time for the fork or in-house port, plus periodic security review of any retained dependencies. Do not expect upstream patches; the last release predates multiple major platform versions.
Support. No commercial SLA unless contracted directly with Netgen as an agency engagement. Community support is negligible at 13 stars. Escalation path is effectively "our own engineers read the source."
Scaling. Custom criteria translate into custom Solr query clauses, and non-trivial ones (nested/aggregation-style filters) can produce expensive queries that bypass the platform's tuned defaults. Any adoption requires load testing against realistic index sizes and monitoring of Solr query latency and cache hit rates; there is no evidence of performance characterization in the package itself.
Failure modes. Silent failure is the main hazard: an unregistered or version-mismatched criterion visitor can yield empty or unfiltered result sets rather than an error, which surfaces as a content-discovery bug rather than an exception. Other modes include Solr schema mismatches after platform upgrade, fatal errors on kernel upgrades due to contract drift, and Composer deadlock where this package's pins block a security patch elsewhere in the application.
Ramp-up. Low for a team already fluent in Ibexa's SearchService and Solr schema management; high for a Laravel team, who would need Symfony bundle mechanics, the eZ/Ibexa search API, and Solr index design — with almost no documentation beyond the source. Factor roughly a week of ramp-up per engineer before any porting work begins, and note that the low opportunity score (0.38) reflects exactly this: the package's value is bounded by a shrinking platform footprint.
How can I help you explore Laravel packages today?