elastification/php-client-bundle
Symfony bundle that integrates the Elastification PHP Elasticsearch client, with configurable HTTP or Thrift transports, native/JMS serializers, and ready-made index, search, document, and cat repositories.
1.4.1 in the sample config, Guzzle pinned <7.0, Thrift as a first-class transport, and a Symfony2 bundle structure put it firmly in the 2014–2015 era. If your roadmap includes any Elasticsearch upgrade to 5.x/6.x/7.x/8.x, this is a hard blocker rather than a dependency to evaluate.search_repository_serializer_dic_id, index_repository_serializer_dic_id, document_repository_serializer_dic_id). That is a product requirement worth capturing in your own design: "search, index, and document operations should be independently serializable/swappable" — then satisfy it with the official elasticsearch/elasticsearch client instead of this bundle.AppKernel and app/config.yml — there is no service provider, no config/*.php, no facades. For a Laravel codebase the integration work is effectively a rewrite, which changes the cost line in any build-vs-buy math.Adoption criteria — realistically, this is only defensible when all of the following are true:
<1.0 constraint, and a README-only maturity rating. Treat it as vendored source you own, not a dependency.ClientBuilder wrapper yourself.Look elsewhere in every other case. Concretely:
elasticsearch/elasticsearch with a service provider, or Elasticquent/laravel-scout-elastic if you want an ORM-ish or Scout-integrated surface.FOSElasticaBundle (actively maintained, Symfony-configurable) or the official client with a named-autowiring service definition.MIT license is fine; the absence of a maintainer is not.For executives: I recommend we do not adopt this package. It is a Symfony2-era Elasticsearch wrapper last aligned with Elasticsearch 1.4 — roughly a decade behind current releases — with no active maintainers and no downstream users. Adopting it would tie our search feature to an unsupported stack and make any future Elasticsearch upgrade a rewrite. There is no cost saving here; it shifts cost from build to maintenance and audit risk. If we already depend on it, I'd like a line item in the next planning cycle to replace it with the official client. Cost of replacement is measured in days, not quarters, because it is a thin config-and-repository layer rather than a deep integration.
For engineering: The only asset worth keeping is its configuration ergonomics — per-operation serializer selection across search, index, and document repositories, plus explicit http/Thrift transport choice. We should reimplement that shape in about a day on top of elasticsearch/elasticsearch, using the framework's native config and DI. Two caveats to be explicit about: (1) it's a Symfony bundle, so for our Laravel codebase the AppKernel registration and app/config.yml examples are not portable — treat this as design reference, not a dependency; (2) the Thrift transport option is a dead end since it was removed in Elasticsearch 5.0, so do not carry that choice forward into our own design. The Guzzle <7.0 pin also conflicts with anything resembling a modern dependency tree, which will surface as a resolution error the moment we try to install it alongside current packages — expect that as the first blocker, not a late surprise.
How can I help you explore Laravel packages today?