short-edition/elastica-bundle
A Symfony bundle that integrates the Elastica client for Elasticsearch: define indexes and mappings in configuration, index documents automatically, and run full-text queries through repository services to add fast, scalable search to your PHP application.
Architecture fit
short-edition/elastica-bundle is a hard fork of friendsofsymfony/elastica-bundle (FOSElasticaBundle). Its integration surface is Symfony-specific: a bundle class registered in config/bundles.php, a DI extension loading YAML/XML service definitions, compiler passes, bin/console commands (fos:elastica:create-index, fos:elastica:populate), and Doctrine event subscribers.Integration feasibility
ContainerBuilder inside a Laravel service provider, translate index configs, and expose a finder service. That is roughly 1–2 engineer-weeks for a thin adapter — before a single mapping or relevance tuning decision.Technical risk
Key questions
laravel/scout + a maintained Elasticsearch driver the baseline?Stack fit
laravel/scout with a maintained Elasticsearch driver (babenkoivan/scout-elasticsearch-driver, matchish/laravel-scout-elasticsearch) or the official elasticsearch/elasticsearch client behind a repository interface. These are Eloquent-native, version-tracked, and supported.friendsofsymfony/elastica-bundle, not this fork, unless the fork carries a documented fix we need — and then the correct move is to upstream that fix and drop the fork.Migration path
SearchIndex::index(), ::delete(), ::search(), ::reindex(). This is the highest-leverage TPM-level decision — it decouples the roadmap from whichever package wins and makes "swap the driver" a sprint task, not a quarter.Elastica\* usage in application code.Compatibility
symfony/* components it pulls (config, dependency-injection, console, http-kernel), Elastica major, and cluster major. A single mismatch ends the evaluation.symfony/console and overlapping psr/* constraints. Co-installability is plausible but must be proven in a lockfile, not assumed.Sequencing
Run steps 1–2 in parallel with a build-vs-managed-search comparison so the go/no-go is about self-hosted Elasticsearch, not about this one package.
Maintenance
Support
Scaling
Failure modes
populate isn't batched and alias-swapped.Ramp-up
TPM recommendation: treat this package as rejected for a Laravel stack and redundant on a Symfony stack. Fund the search-port abstraction plus a maintained driver (Scout driver or official client) as the default, and fund a one-week, time-boxed spike on self-hosted Elasticsearch vs. managed search — with explicit kill criteria. The only defensible use of this fork is a documented, upstream-pending bugfix that blocks a release, and even then the exit plan is to upstream the patch and return to the parent project.
How can I help you explore Laravel packages today?