slash-dw / filter-kit
SlashDw shared filter infrastructure for Laravel projects
v0.0.2
2026-04-29 14:55 UTC
Requires
- php: ^8.5
- illuminate/contracts: ^13.0
- illuminate/database: ^13.0
- illuminate/http: ^13.0
- illuminate/support: ^13.0
- slash-dw/core-kit: ^0.0.2
Requires (Dev)
- larastan/larastan: ^3.9
- laravel/pint: ^1.29
- orchestra/testbench: ^11.0
- phpunit/phpunit: ^12.0
README
A Laravel filtering pipeline package for Eloquent queries.
Requirements
- PHP
^8.5 slash-dw/core-kit^0.0.1- Laravel
^13.0
Exact Laravel component constraints are defined in composer.json.
What This Package Provides
BaseFilterpipeline- Attributes:
Filterable,JsonFilterable,MorphType - Builders:
FilterFromRequestBuilder,FilterReflector - Appliers:
StandardFilterApplier,RelationFilterApplier,JsonColumnApplier - Value objects:
FetchType,OrderClause,MultiFieldSearchConfig
Quick Usage
use SlashDw\FilterKit\BaseFilter; use SlashDw\FilterKit\Enum\Operator; use SlashDw\FilterKit\FetchType; use SlashDw\FilterKit\Filterable; final class ItemFilter extends BaseFilter { #[Filterable(columns: 'title', operator: Operator::ILIKE)] public ?string $q = null; } $filter = ItemFilter::fromRequest($request) ->setFetchType(FetchType::paginate('/items', 30));
Test Status
- PHPUnit: 25 tests / 102 assertions
- PHPStan: clean (package level: 5)
- Pint: passed
Dev Commands
composer install ./vendor/bin/phpunit -c phpunit.xml.dist ./vendor/bin/phpstan analyse -c phpstan.neon.dist --memory-limit=1G ./vendor/bin/pint --format agent