nelmio/solarium-bundle
NelmioSolariumBundle integrates the Solarium PHP client with Symfony, providing a preconfigured Solr client as a service, simple configuration for your Solr endpoints, and convenient querying of Apache Solr from any Symfony application.
Architecture fit
nelmio/solarium-bundle is a Symfony bundle, not a Laravel package. Its value is in Symfony-specific glue: a DI extension that builds Solarium\Client services from a config tree, an optional web profiler/data collector, and bundle registration in the Symfony kernel. None of that transfers to Laravel, which has no bundle/kernel/DI-extension concept. v6.1.0 changes nothing here — it is a composer constraint edit, not new glue.solarium/solarium, is a framework-agnostic HTTP client for Solr. That library is the actually reusable piece and drops cleanly into a Laravel service provider.Integration feasibility
composer require solarium/solarium, a config/solr.php (endpoints, cores, adapter, timeout, auth), a singleton binding, and a thin facade. That is 1–2 days of spike work.symfony/http-kernel/dependency-injection/config and will register against a kernel lifecycle that does not exist; configuration caching, package discovery, and the service container will not cooperate. There is no supported path, only a maintenance liability.Technical risk
solarium/solarium ^7.0, i.e. the maintainer has widened to the current upstream major while retaining ^6 support. That is a good maintenance signal for the upstream library we actually intend to use.^6.0 || ^7.0 means the bundle's documented behaviour is a union of two Solarium majors, and its config examples/issue threads will mix both. Any code we crib from it must be checked against the major we pin. Independent of the bundle, our own composer.json should pin one Solarium major explicitly (^7.0 if baseline permits) rather than float across both.@mpdude) — evidence of a live upstream, not of a support commitment.Key questions
Stack fit
solarium/solarium directly — and pin the major explicitly (^7.0, subject to the PHP baseline check). Bind a configured Solarium\Client as a container singleton, expose it behind a small SearchService/repository interface, and keep Solarium types out of controllers and models.endpoints keyed by name, each with host/port/path/core/timeout, plus a default endpoint selector. This preserves familiarity for anyone who has used the Symfony setup, at zero coupling cost. Note the v6.1.0 config examples may reflect either Solarium major; validate field names against the major we pin.Migration path
config/solr.php, service provider, facade, .env-driven endpoints per environment.cursorMark over deep start offsets), result mapping to application DTOs, fallback to database queries when Solr is unavailable.Compatibility
Sequencing
Maintenance
Support
Scaling
Failure modes
composer install, producing client-API breaks at runtime rather than at build time. Mitigate with an explicit major constraint, a committed lockfile, and a CI smoke test against Solr.Ramp-up
cursorMark — since these dominate the debugging effort far more than the PHP client does.How can I help you explore Laravel packages today?