adimeo-data-suite/filters
Laravel package providing a filter suite for building and applying query filters to data sets. Helps structure filter definitions and plug them into requests for consistent, reusable filtering in your application.
?filter[price][gt]=100).symfony/css-selector for path-based filtering (e.g., filter[user.address.city]=Paris), which is intuitive for nested data (e.g., JSON APIs, Eloquent relationships). This is a strong fit for Laravel’s nested resource structures.adimeo-data-suite/commons (undocumented) provides shared utilities (e.g., validation, type handling). Risk: Tight coupling to an unproven package with no adoption.Builder methods to inject dynamic filters (e.g., Model::filter($request)->get()).Resource::collection($filteredData)).AuthorizesRequests or ValidatesRequests.adimeo-data-suite/commons dependency is a black box. Could introduce hidden dependencies or breaking changes.WHERE JSON_EXTRACT(path, '$.user.address.city') = 'Paris'). Risk of N+1 queries if not optimized.filter[user../../../secret]=true). Requires input validation.where clauses, API resource filtering) or augment them?adimeo-data-suite/commons fails?filter[user.password])?Illuminate\Http\Request to parse filter queries (e.g., filter[field][operator]=value).FilterMiddleware for API routes).laravel-api or spatie/laravel-query-builder for advanced query support.laravel-validator to sanitize filter inputs before processing.Illuminate\Support\Facades\Cache).GET /products?filter[price][gt]=50).where clauses with the package’s fluent interface.// Native Laravel
$query->where('price', '>', $request->input('min_price'));
// Package for nested filters
$query->filter($request->input('filter', []));
symfony/css-selector (v6+) and guzzlehttp/guzzle (unused but required).JSON_EXTRACT).spatie/laravel-query-builder (for dynamic queries).fractal/manager (for API resource filtering).Illuminate\Database\Eloquent\Builder with a filter() method.namespace App\Extensions;
use Adimeo\DataSuite\Filters\Filter;
use Illuminate\Database\Eloquent\Builder;
class FilterableBuilder extends Builder {
public function filter(array $filters): static {
return (new Filter())->apply($this, $filters);
}
}
Illuminate\Http\Resources\Json\Resource or Json\JsonResource.public function toArray($request) {
$data = parent::toArray($request);
return Filter::apply($data, $request->input('filter', []));
}
adimeo-data-suite/commons: No GitHub activity or documentation. Mitigation:
symfony/css-selector (e.g., PHP 8.2+ features).^1.0.0 to avoid major version lock-in.filter[user.addresses[*].city]) may require deep inspection of the filter tree.How can I help you explore Laravel packages today?