gbourgeat/elasticsearch-bundle
A Symfony bundle for integrating Elasticsearch into your PHP applications, providing configuration, service wiring, and convenient tooling for indexing and querying Elasticsearch from Symfony projects.
elasticsearch/elasticsearch PHP client — it wires the client into Symfony's DI container and exposes configurable client/index settings. Its value to a PM is that it lets the team treat search, faceted filtering, autocomplete, and relevance-ranked results as a product deliverable while the undifferentiated HTTP/serializer glue is already handled. It reframes the build/buy conversation around index modeling and relevance tuning — the actual product work — instead of transport wiring.laravel/scout with an ES driver or a thin elastic/elasticsearch-php wrapper in Laravel land).config/search.php, no Artisan commands. In a Laravel stack you would consume roughly 40% of it and inherit 100% of its Symfony coupling. That fact belongs in the intake notes so the decision is made on the right stack assumption.Consider it only when all of these hold:
bin/console commands.)SearchGateway interface in front of it so the bundle's types never leak into application/domain code — that interface is what makes the decision reversible.Look elsewhere — as the default recommendation — when:
elasticsearch/elasticsearch (or elastic/elasticsearch-php v8) plus a small, owned service/wrapper layer. That is the "build" side, it is small, and it survives the upgrade.To executives: This is an Elasticsearch integration for Symfony, pinned to PHP 7.2. It is not a candidate for strategic adoption — no community, no dependents, a single maintainer — which means we would own all maintenance and security risk ourselves. Recommendation: do not standardize. Treat it as a tactical, time-boxed accelerant for a legacy-stack search prototype only, with a defined exit before our PHP 8 upgrade and a named owner on the hook for patching. Search is a product differentiator; the Symfony-to-Elasticsearch glue is not — spend the effort on index design and relevance.
To engineering: Use the official elasticsearch/elasticsearch client and wire it into the framework as a service — a few dozen lines we control, and it survives the PHP 8 migration. If you want a maintained bundle abstraction in Symfony, FOSElasticaBundle is the choice; in Laravel, laravel/scout with an ES driver or a thin client wrapper. Reach for gbourgeat/elasticsearch-bundle only on a frozen Symfony/PHP 7.2 app, only after reading the source, and only behind an internal SearchGateway interface with a removal ticket already filed. Put a real Elasticsearch container in CI before any production indexing code lands — mocked tests hide mapping, alias-swap, and items[].status failures.
Bottom line: For a Laravel stack, this is a no — the fork's value is trapped behind Symfony idioms and its abandonment profile (0 stars, 0 dependents, PHP 7.2) makes it a liability rather than an accelerant. For a legacy Symfony 7.2 app, it is a qualified, quarantined yes: adopt behind an interface, with a named owner and a documented exit. Either way, keep the glue boring, owned, and upgrade-path-compatible.
How can I help you explore Laravel packages today?