componenta/filter
Composer 安装命令:
composer require componenta/filter
包简介
Composable filters for Componenta class discovery and reflection workflows
README 文档
README
Composable filter objects for iterable data and reflection/class discovery.
Installation
composer require componenta/filter
Requirements
- PHP 8.4+
componenta/arrayable
Related Packages
| Package | Why it matters here |
|---|---|
componenta/arrayable |
Filters can expose their result through toArray(). |
componenta/class-finder |
Uses filters to select discovered classes, attributes, and reflection targets. |
componenta/iterator |
Can combine filtering with replayable iteration. |
What It Provides
FilterInterface: iterable filter contract withaccept()andtoArray().AbstractFilter: base implementation for filtering an iterable source.FilterableInterfaceandFilterable: immutable filter-chain support.- Concrete filters for scalars, arrays, strings, class names, reflection objects, files, ranges, callbacks, and composition.
Basic Usage
use Componenta\Filter\StringFilter; $filter = new StringFilter(['one', 2, 'three']); $filter->toArray(); // ['one', 'three']
Keys are not preserved by default:
$filter->toArray(preserveKeys: true);
Custom Criteria
use Componenta\Filter\CallbackFilter; $filter = new CallbackFilter( static fn(mixed $value, string|int|null $key): bool => is_int($value) && $value > 10, [5, 15, 20], ); $filter->toArray(); // [15, 20]
Filter Chains
Objects using Filterable should return new instances when filters are added or removed.
$next = $filterable->withFilter($filter); $sameWithout = $next->withoutFilter($filter);
accept() uses AND semantics: every registered filter must accept the value.
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-06-14