Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Awesome Filter Bundle Laravel Package

netbull/awesome-filter-bundle

Netbull AwesomeFilterBundle is a Symfony bundle that adds reusable filter types for building flexible, query-driven filter forms. Simplify filtering logic in your admin panels and listings with configurable, ready-to-use filters that plug into your existing Symfony stack.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Stack premise is wrong, and that's the first finding. netbull/AwesomeFilterBundle is a Symfony bundle, not a Laravel package. The *Bundle suffix, the netbull vendor namespace, and the bundle's integration surface (service container config tree, Doctrine bridge) all point to Symfony's kernel/DI model. Laravel has no concept of a bundle, no config/packages/*.yaml, and no autodiscovery hook this would register against. If the stated target stack is Laravel, evaluation stops here — there is no "integration," only a rewrite. Everything below assumes the actual target is Symfony.

Architecture fit (Symfony assumption): Filter bundles of this shape typically sit between Symfony Forms (filter UI) and Doctrine ORM (query construction), which is a legitimate seam — filtering logic is exactly the kind of cross-cutting concern teams re-implement badly. Architecturally it is plausible. Practically, it introduces a third-party abstraction over QueryBuilder that owns your query semantics. That is a high-blast-radius dependency for a component with zero dependents.

Integration feasibility: low-to-moderate. The package is installable, but adoption risk is dominated by unknowns rather than by anything measurable in the signal set:

  • Doctrine ORM 2 vs 3 compatibility is the single highest technical risk. ORM 3 changed QueryBuilder/Expr behavior and removed deprecated APIs. A filter builder written against ORM 2 will fail at runtime, not at install time.
  • Filter definition mechanism (attributes vs PHP config vs YAML) determines how invasive adoption is. Attribute-driven filtering bleeds into entity classes and is painful to remove later.
  • Parameter binding discipline is unknown. If the bundle assembles DQL from request input via string interpolation rather than bound parameters, you have inherited an injection surface. This must be read in source, not inferred.

Technical risk: high.

  • AGPL-3.0 is a probable hard blocker. For any network-served product, AGPL §13 obliges you to offer corresponding source to users interacting over the network — including modifications. Many enterprises carry a blanket AGPL ban; legal review is a gating step, not a nice-to-have. Do not run a spike before counsel rules.
  • Bus factor of one. 0 stars, 0 dependents, no downstream users to surface bugs. Effectively unvalidated in production anywhere.
  • Release recency ≠ maintenance. A June 2025 tag on a zero-adoption repo can indicate either active upkeep or a single commit after dormancy. Check commit cadence, tag cadence, CI config, and issue response times directly.

Key questions to put to the maintainer or source:

  1. Supported Symfony and Doctrine ORM version matrix — and is ORM 3 tested in CI?
  2. How are filter parameters bound to DQL? Show the query-construction path.
  3. Is there any path to a commercial/alternative license, or is AGPL the only option?
  4. Does it support nested/relation filtering, and what does the emitted SQL look like for a 3-level filter?
  5. What is the documented filter-definition API, and how much of it leaks into entity classes?

Integration Approach

Stack fit. Viable only on Symfony + Doctrine. On Laravel: reject. On Symfony with a non-Doctrine persistence layer (API Platform custom providers, Elasticsearch, raw DBAL): reject — the value proposition is Doctrine query construction.

License path before technical path. Two acceptable outcomes: (a) legal clears AGPL for this specific deployment shape, or (b) the vendor offers a permissive/commercial license. If neither, the correct decision is to build a small in-house filter layer — the domain surface here is narrow enough that a bespoke FilterCollection → QueryBuilder implementation is a few days of work and carries none of the legal or bus-factor risk.

Compatibility gates. Pin Symfony LTS, pin Doctrine ORM major, and verify both against the bundle's composer.json constraints plus a read of its test matrix. A green composer require proves nothing about ORM 3 runtime behavior.

Migration path, if approved. Do not call the bundle's API from controllers or repositories directly. Define a narrow internal interface — e.g. FilterableQuery::apply(FilterSet $filters) — and implement it with the bundle behind an adapter. This buys three things: a one-file swap if the package is abandoned, a test seam that doesn't require booting the bundle, and containment of any attribute-based config so entity classes stay clean. Migrate one low-risk list endpoint first, compare emitted SQL against the existing hand-rolled query, then expand.

Sequencing.

  1. Legal/license ruling (blocking).
  2. Source read: parameter binding, ORM 3 support, filter-definition API.
  3. Timeboxed spike (2–3 days) on one endpoint behind the adapter.
  4. SQL/EXPLAIN diff against current implementation.
  5. Go/no-go; if no-go, the spike's adapter interface is reused by the in-house implementation.

Operational Impact

Maintenance: you will own this. Zero dependents means no upstream community absorbing bugs, no Stack Overflow corpus, no third-party tutorials. Expect to vendor or fork within 12–18 months. Budget for that explicitly; it changes the true cost from "one composer dependency" to "a small internal library with an external origin."

Support. No commercial support, no SLA, no security disclosure policy observed. A vulnerability in the filter path — the exact path that touches user input and database queries — has no coordinated disclosure channel. For anything handling multi-tenant data, that is a material gap.

Scaling. Query-construction layers fail at scale in characteristic ways: generated joins that bypass indexes, filter combinations that produce cartesian products on relation filtering, and N+1 when relation filters trigger lazy hydration. None of this is visible in a dev dataset. Mitigations: log every generated DQL in staging, run EXPLAIN against production-shaped data for the top filter combinations, and cap filter depth/complexity at the API boundary rather than trusting the UI.

Failure modes, ranked.

  1. License exposure — AGPL obligations triggered silently the moment the feature ships to network users. Highest severity, lowest detectability.
  2. ORM major upgrade breakage — package stops working mid-upgrade cycle with no upstream fix; blocks your framework upgrade.
  3. Silent query degradation — correct results, wrong plan; surfaces as latency in production only.
  4. Injection surface — if string-built DQL; verify before exposure.
  5. Abandonment — issues go unanswered, you fork, and the fork drifts from the adapter contract.

Ramp-up. For a Symfony-fluent engineer, low-to-moderate, but the onboarding cost is "read the source," not "read the docs." Assume documentation quality tracks adoption — at 0 stars, expect a README and little else. The adapter pattern from the integration section is what keeps ramp-up cost from being paid twice.

Verdict. The opportunity score of ~39 reflects an uncalibrated signal set — with 0 stars and 0 dependents there is no evidence base, so the score is closer to a floor than a measurement. The technical case is weak for Laravel (wrong framework entirely) and moderate at best for Symfony. The AGPL license is the deciding factor: if legal will not clear it, stop here and build the ~200-line in-house equivalent. If it will, run the two-day adapter spike before committing.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource