kettasoft/filterable
Filterable brings clean, request-driven filtering to Laravel Eloquent models. Define reusable filter classes, apply them to any query with a simple trait, and support search, sorting, and custom filters without bloating your controllers. Lightweight and easy to extend.
Architecture fit: Filterable appears to sit in the Laravel request-to-query filtering layer, translating structured filter definitions into database queries. The v3.0.1 fix targets the Tree engine’s logical group semantics, so it is most relevant to applications that expose nested AND/OR filter trees to users, APIs, admin panels, or reporting flows. This is a correctness fix within an existing package boundary, not an architectural change.
Integration feasibility: Integration is straightforward for a Laravel/PHP application already using Composer. The release notes explicitly state no new public APIs and no breaking changes; existing Tree request structures remain compatible. Upgrade is a dependency update via composer update kettasoft/filterable. No application code migration is expected, though behavioral verification is required because boolean grouping semantics have changed.
Technical risk: The primary risk is not API breakage but silent query-result changes for consumers that relied on prior Tree group behavior. Fixing groups to honor their declared AND/OR boolean and preserving nested group boundaries can change which records are returned for complex filters. Permissive mode also now omits rejected leaves while retaining valid conditions in the same group, which may alter result sets. Treat this as a patch-level upgrade operationally, but validate it as a semantic behavior change in filter-heavy applications.
Key questions: Which Laravel and PHP versions are supported by v3.0.1? Are there regression tests covering nested AND/OR combinations, mixed groups, and permissive mode? Do any existing Tree request structures depend on the previous, incorrect grouping behavior? Is the permissive-mode leaf omission behavior documented for API consumers? What is the rollback path if production filter results diverge?
Stack fit: Fits Laravel/PHP applications that already use Filterable for query construction, especially where filters are user-defined or API-driven. The release is not a new platform dependency; it is a correctness update to an existing filtering engine.
Migration path: Update the package through Composer and commit the resulting composer.lock change. Expect no application-level code changes. The migration path is dependency-only, with validation focused on filter behavior rather than API or schema changes.
Compatibility: The release notes state no breaking changes and no new public APIs. Existing Tree request structures remain compatible. However, compatibility at the request-shape level does not guarantee identical query results, because the fix changes logical group evaluation. Teams should treat request compatibility and result compatibility separately.
Sequencing: First, update in a development branch and run the application’s existing test suite. Second, add or run targeted tests for nested Tree groups, mixed AND/OR joins, and permissive mode. Third, validate representative production-like filters against staging data, comparing query output and result sets where feasible. Fourth, deploy to production with normal monitoring and a Composer-lock rollback plan.
Maintenance: Low ongoing maintenance burden. This is a patch release with no public API expansion or deprecation. Maintenance effort is concentrated in regression verification around Tree filter behavior.
Support: Support risk is moderate if users or API consumers rely on complex nested filters. Support teams should be briefed that v3.0.1 corrects group semantics and may change results for edge-case Tree filters, even though upgrade steps are simple.
Scaling: No clear scaling concern is introduced by the release notes. Recursive query construction for nested groups should still be validated against large or deeply nested filter trees to ensure no unexpected query complexity or performance regression.
Failure modes: Main failure modes are incorrect AND/OR grouping after upgrade, nested group boundary regressions, permissive mode returning a different set of valid conditions, and silent result changes in reports or APIs. These are correctness failures rather than availability failures, so query-result monitoring and filter-specific tests are important.
Ramp-up: Developer ramp-up is low for teams already familiar with Laravel and Composer. The main learning requirement is understanding the package’s Tree semantics, especially how declared group booleans and permissive mode interact. A short internal note and targeted test examples should be sufficient.
How can I help you explore Laravel packages today?