stexaz/ongr-elasticsearch-bundle
A Symfony bundle for integrating Elasticsearch with ONGR, providing document mapping, index management, repositories, and search tooling for scalable full-text search and filtering in PHP apps. It streamlines configuration and query building while keeping Elasticsearch usage idiomatic in Symfony.
Architecture fit. Despite the framing as a Laravel/PHP package, this is a Symfony bundle, not a Laravel package. It targets Symfony's dependency injection container, bundle configuration, and event dispatcher — none of which Laravel's service container or package discovery mechanism consume natively. Adopting it in a Laravel codebase would require bridging two incompatible DI paradigms (or extracting the underlying ONGR/ElasticsearchBundle components and rewiring them), which is non-trivial and immediately forfeits any upstream support. It is also a fork-of-a-fork (stexaz → andriuspetrauskis → upstream ONGR), meaning the published artifact is at best a maintenance branch of code that itself has been superseded.
Integration feasibility. Low. There is no composer require path to a working Laravel install; the bundle's service definitions expect Symfony\Component\DependencyInjection and Symfony kernel lifecycle hooks. Even in a Symfony application the fit is poor: the bundle's supported matrix (roughly Symfony 2.8–4.x, PHP 7.0/7.1, Elasticsearch 2.x–5.x) is several major versions behind any current runtime. The only realistic adopters are legacy Symfony 3/4 applications pinned to old Elasticsearch clusters, and even those have cleaner, still-maintained alternatives (ongr/elasticsearch-bundle upstream, or the official elastic/elasticsearch-php client used directly).
Technical risk. High across every dimension that matters to a TPM:
symfony/* components, old elasticsearch/elasticsearch) carry known CVEs. With no upstream patching, you inherit them permanently.Key questions for the requesting stakeholder.
elastic/elasticsearch-php, or a maintained Symfony bundle cannot?ongr/elasticsearch-bundle been reviewed? What does the fork add or change?Stack fit. Effectively none for a Laravel stack. For a Symfony stack, fit is limited to legacy applications. Do not treat this as a candidate for new development on either framework.
Migration path. The appropriate "integration" is a migration away from the underlying technology rather than adoption:
elasticsearch/elasticsearch driver (or a managed engine such as Meilisearch/Typesense/Algolia). This gives PHP 8.x compatibility, active maintenance, and framework-native model indexing.ongr/elasticsearch-bundle at whatever version your Symfony runtime supports, or call the official Elasticsearch PHP client directly and own a thin repository layer.composer VCS repository or path repository), and schedule replacement.Compatibility. Assume PHP ≤7.2, Symfony ≤4.x, Elasticsearch ≤5.x. These are hard ceilings, not soft warnings. No compatibility with Laravel 8+, PHP 8+, ES 7/8.
Sequencing. (1) Confirm the business requirement (search, faceting, aggregation, log analytics?). (2) Prototype the modern alternative in a single bounded context. (3) Only if a specific legacy cluster must be preserved, evaluate upstream ONGR rather than this fork. (4) Establish a deprecation date for any legacy dependency before writing new code against it.
Maintenance. Zero upstream maintenance. Every bug fix, PHP compatibility patch, and security update becomes your team's responsibility. Budget for a full fork-and-own posture if you proceed — realistically 0.25–0.5 FTE ongoing just to stay deployable on a modern runtime.
Support. No vendor, no community (zero stars/dependents implies no issue traffic, no Stack Overflow corpus, no blog coverage). Incident response is entirely internal, with no upstream escalation path. This is the single largest operational liability.
Scaling. Elasticsearch itself scales horizontally, but the bundle is an abstraction layer over it — it does not impede cluster scaling directly. The scaling constraint is engineering: you cannot horizontally scale the number of engineers who understand this abandoned bundle, because onboarding requires reading 2017-era ONGR documentation and Symfony internals. That is a poor scaling characteristic for a growing team.
Failure modes.
composer update elsewhere in the app or a PHP minor bump breaks the bundle at runtime, often in DI compilation or mapping metadata — hard to detect in CI without integration tests against a real cluster.Ramp-up. Steep and non-transferable. Engineers must learn ONGR's document/annotation mapping, repository, and event model — skills that do not generalise to the official Elasticsearch client or to Laravel Scout. Expect 2–4 weeks to first productive contribution versus hours for the maintained alternatives, and a permanent documentation debt.
Recommendation. Reject for adoption. The score of 0 with 0 stars, 0 dependents, and a 2017 last release is consistent with an abandoned fork. The framework mismatch (Symfony bundle presented for a Laravel/PHP context) compounds the technical risk. The correct decision is to standardise on a maintained client or framework-native search integration and treat this package only as a migration source if it is already present in the estate.
How can I help you explore Laravel packages today?