padam87/search-bundle
Lightweight Symfony bundle for adding search to Doctrine-backed applications. Define searchable fields and filters, build queries from request parameters, and return paginated results with minimal configuration.
Architecture fit. padam87/search-bundle is a Symfony2 bundle, not a Laravel package. It is built around Symfony's DependencyInjection container, bundle registration (AppKernel), and Doctrine ORM entity metadata. Its search abstraction is exposed through Symfony services, annotations, and configuration trees — none of which have direct analogues in Laravel's service-provider/container model. In a Laravel codebase this is not "loosely coupled but adaptable"; it is architecturally incompatible at the bootstrapping layer. Any use would require either a Symfony sidecar service or a substantial port that effectively discards the bundle packaging.
Integration feasibility. Low. The package last shipped in April 2014, targeting Symfony 2.x and PHP 5.x-era tooling (pre-PHP 7, pre-Composer v2 norms, pre-PSR-4-autoloading ubiquity). A Laravel 10/11 application runs PHP 8.1+ and expects modern typing, strict deprecation behavior, and PSR-compliant autoloading. There is no maintained bridge. The realistic integration paths are: (a) reimplement the search abstraction natively in Laravel, using this repo as a design reference only; (b) run a Symfony 2.x service in isolation and call it over HTTP — which carries the entire legacy runtime as an operational burden; or (c) reject and select a maintained alternative (laravel-scout, Elasticsearch/Meilisearch clients, TNTSearch). Only (a) and (c) are defensible for a production roadmap.
Technical risk. High and concentrated in three areas. First, abandonment: 7 stars, 0 dependents, and a 2014 last release indicate no community safety net — no security patches, no compatibility fixes, no issue triage. Second, runtime risk: Symfony 2.x is end-of-life and receives no security updates; running it in 2024+ is a compliance and audit finding, not just a technical debt item. Third, knowledge risk: the Symfony 2 bundle conventions (annotation-driven metadata, compiler passes) are unfamiliar to most current Laravel engineers, so onboarding cost is asymmetric — you pay to learn patterns you cannot reuse elsewhere in the stack. The low opportunity score (16.04) and composite score (0.285) from the evaluation dataset corroborate this: the package is a historical artifact, not a candidate.
Key questions.
Stack fit. Poor for Laravel. The package assumes Symfony's kernel, bundle config merging, Doctrine metadata drivers, and a service-container-centric extension model. Laravel's container, Eloquent, and Artisan command surface have no mechanical mapping. The only honest framing is "port the concept, not the code."
Migration path. Treat the repository as a specification, not a dependency. Extract (1) the search abstraction interface, (2) the indexing lifecycle (index/build/refresh), and (3) any adapter contracts, then reimplement behind a Laravel-native interface (SearchDriver contract, bound in a service provider, driven by Artisan commands and queued jobs). If a Symfony service already exists in the estate that depends on this bundle, the migration is a strangler pattern: stand up the Laravel-native search service alongside, dual-write indexes, shadow-read for a bake period, then cut over. Do not attempt to composer require this into a Laravel app — expect immediate autoload and container failures.
Compatibility. Assume PHP 5.x/7.0-era code and Symfony 2.3–2.7 APIs. If the source is only being read (not executed), compatibility is irrelevant beyond comprehension. If it must run, pin the legacy runtime in its own container with no shared network egress beyond its API, and document the EOL exception explicitly. There is no supported path to PHP 8 or Laravel 10/11 without a fork and rewrite, at which point the package provides no residual value.
Sequencing.
Recommendation. Do not adopt as a dependency. Reuse as design input only, and only if the team has a specific unmet need the maintained ecosystem does not cover — which, for full-text and faceted search in Laravel, is unlikely.
Maintenance. Effectively unmaintained. With 0 dependents and no release since 2014, there is no upstream to patch, no CVE response, and no version compatibility promise. Any operational burden lands entirely on the adopting team, and that burden grows monotonically as PHP and Symfony evolve around a frozen codebase.
Support. No vendor, no active maintainer engagement, no community. Internal support means one or two engineers who understand an obsolete framework convention — a single-point-of-failure staffing pattern. Knowledge transfer cost is high and the skill is not transferable to the rest of the stack.
Scaling. Unknowable without profiling, and that is the problem: the bundle's index/query adapters reflect 2014 design assumptions (synchronous indexing, modest index sizes, single-node search backends). Modern expectations — incremental reindexing, distributed search, near-real-time freshness — are not addressed by the abstraction. You would be scaling the underlying engine, not this layer, which raises the question of why the layer exists at all.
Failure modes.
Ramp-up. Deceptively expensive. The bundle's own surface is small, but productive use requires Symfony 2 bundle conventions, Doctrine metadata drivers, and the 2014 search-adapter idiom — three skill areas that are declining in the market and irrelevant to the team's Laravel work. Estimate weeks of ramp-up for a small team, versus days to stand up a maintained Laravel search driver. The cost asymmetry is the strongest argument in the assessment: the package's conceptual value can be captured in a short port, while its dependency value is negative.
How can I help you explore Laravel packages today?