- Can I use flexmodel/flexmodel-elasticsearch-bundle in a Laravel application?
- No. It is a Symfony 3+ bundle that registers itself through a Bundle class plus a DependencyInjection Extension and Symfony config tree, and it ships no Laravel service provider, facade, publishable config, or Artisan commands. Making it work in Laravel means writing your own integration layer around the underlying FlexModelElasticSearch library rather than installing the bundle. At that point the bundle contributes nothing but a reference implementation.
- What Laravel versions does this package support?
- None. The package targets Symfony 3+ kernels and assumes Symfony's dependency injection container and YAML configuration, with no Laravel-specific glue of any kind. There is no service provider, no config publishing, and no Artisan integration, so no Laravel version is supported. Treat any compatibility claim for Laravel as unsupported.
- Which Elasticsearch versions does this bundle support?
- It pins an Elasticsearch PHP client from the ES 2.x and 5.x era, which relies on mapping types. Mapping types were removed in Elasticsearch 7, so even a successful Composer install would fail against any current cluster. Supporting ES 7 or 8 requires typeless index mappings and a rewritten client layer, which is a data model change rather than a version bump.
- Which PHP versions can run this bundle?
- The source is PHP 5.x to 7.0-era code, and its Symfony and HttpKernel constraints conflict with PHP 8.2+ and modern Composer resolution. Installation typically fails before runtime on a current stack. Running it on a supported PHP version today is not a realistic configuration.
- How do I install flexmodel-elasticsearch-bundle with Composer?
- The documented flow is composer require flexmodel/flexmodel-elasticsearch-bundle, then registering the bundle in a Symfony AppKernel and configuring it through the Symfony config tree in YAML. That entire flow assumes a Symfony application. On a Laravel or PHP 8.2 project you should expect dependency resolution failures from the pinned Elasticsearch client and Symfony constraints.
- Is flexmodel-elasticsearch-bundle still maintained?
- No. The repository is archived, the last release was 2017-04-19, and it has zero stars and zero dependents. There is no community validation, no evidence of production use, and no security response path. Adopting it means forking and owning the code yourself.
- Does this bundle index model data automatically?
- Automatic indexing is a Symfony-side feature: the bundle wires FlexModel's own dependency injection container so model data is indexed on save, and index lifecycle is handled by Symfony console commands. None of that hooks into Laravel's Eloquent events or service container, so nothing indexes automatically in a Laravel app. You would have to rebuild the observer and command layers yourself.
- What should Laravel teams use instead for Elasticsearch full-text search?
- Use Laravel Scout with an Elasticsearch driver, or wire elasticsearch/elasticsearch directly behind your own service provider. Either path lets you define typeless index mappings explicitly, which modern Elasticsearch requires anyway. That is considerably less work than owning three archived dependencies.
- Can the bundle's index management commands be ported to Artisan?
- Yes, but it is a rewrite rather than a port. The index create, delete, and populate logic lives in Symfony Command classes that talk to the FlexModel container. Reimplementing them as Artisan commands is straightforward, but it leaves the bundle contributing nothing except a reference implementation to read.
- What is the production risk of adopting this bundle and how should we evaluate it?
- High and compounding. Three unmaintained layers stack up: the bundle, the FlexModel core library, and an Elasticsearch client that predates typeless mappings, each a separate fork-and-own obligation with no dependents to inherit patches from. Before committing, run a one to two day spike to confirm whether FlexModel's specific data-mapping model is a real requirement. If it is not, stop here and adopt a maintained client instead.