open-dxp/elasticsearch-client-bundle
A PHP bundle that integrates the Elasticsearch client into your application, offering ready-made configuration, service registration, and convenient access for indexing, searching, and querying documents with minimal boilerplate. It simplifies connecting to Elasticsearch clusters and adding search c...
NOASSERTION license, the highest-value PM use of this repo may be as a design reference for how to structure client configuration and factory wiring — read it, mirror the config shape, and write our own thin wrapper. That converts an adoption decision into a low-cost research task.Consider it when:
Look elsewhere when:
Illuminate\Support\ServiceProvider, no package auto-discovery, and the Symfony config keys, service tags, and parameter names do not map 1:1 to Laravel's container. The Laravel-native paths are Laravel Scout with an Elasticsearch driver, or the official elasticsearch-php client bound through your own service provider. Do not budget integration time as if this were a Laravel package — budget it as "read the bundle, port the config shape."NOASSERTION) are all flags that must be cleared before this becomes a standard dependency — the license ambiguity especially, since it gates redistribution and any downstream commercial use.elasticsearch-php major pulled in by the bundle must match your cluster major. An accidental composer update across a major is a silent runtime break, so verify before committing.Risk notes to carry into the decision: (a) the v1.0.1 branding/naming pass can touch config keys, service IDs, or class references — grep existing installs after bumping; (b) bus-factor on a small maintainer team — pin to ^1.0; (c) the license must be clarified in writing before this appears in a dependency manifest we support commercially.
To executives: We are evaluating a small, focused package that wires an Elasticsearch client into a PHP application so our teams don't build and maintain that plumbing themselves. It is actively maintained — the latest release adds support for the newest PHP version — so it will not pin our runtime or become an upgrade liability. The important framing: this package is not the investment. It is glue. The real spend and the real risk sit in the search cluster we would need to operate, monitor, and back up, and the go/no-go decision belongs there. Our recommendation is a two-week, time-boxed evaluation: confirm the license in writing, prototype one search surface against a real cluster, and decide on the cluster — not on the library. If the cluster is justified, this package is a low-risk way to start; if it isn't, we should not adopt it as a dependency at all. Separately, note that this ships as a Symfony bundle, so on our Laravel services it would be a reference implementation rather than a drop-in.
To engineering: Treat this as an evaluation candidate, not a decided dependency, and be specific about why. It is a Symfony/OpenDXP bundle — there is no service provider and no package auto-discovery — so on Laravel the realistic play is to read its dependency-injection extension and configuration tree, mirror that config shape into config/elasticsearch.php, and bind the official client through our own singleton provider. Two gates before we go further: the NOASSERTION license needs legal clarity, and the zero-star adoption signal means we own the maintenance risk regardless of what the changelog says. If we do adopt it, the v1.0.1 bump is patch-level and non-breaking — fold it into the maintenance window, then grep for configuration keys, service IDs, and namespace references affected by the branding rename, and verify the elasticsearch-php major matches our cluster major. Architecturally, keep query-building behind a thin internal interface (ElasticsearchService or a repository class) so replacing the client later is a contained change rather than a rewrite; put indexing behind queued jobs rather than the request path; use versioned indices behind aliases so a mapping change is a reindex-and-flip rather than downtime; and define explicit mappings — dynamic mapping will silently poison a numeric field and surface as a query-time bug a quarter later. Log query bodies only behind an environment flag, because DSL bodies routinely carry user PII.
How can I help you explore Laravel packages today?