| Total Complexity | 3 |
| Total Lines | 22 |
| Duplicated Lines | 0 % |
| Coverage | 100% |
| Changes | 0 | ||
| 1 | <?php declare(strict_types=1); |
||
| 28 | final class VisibilityFilters |
||
| 29 | { |
||
| 30 | /** @var VisibilityFilter[] */ |
||
| 31 | private readonly array $filters; |
||
|
|
|||
| 32 | |||
| 33 | /** @param VisibilityFilter[] $filters */ |
||
| 34 | public function __construct(array $filters = []) |
||
| 35 | { |
||
| 36 | $this->filters = $filters; |
||
| 37 | } |
||
| 38 | |||
| 39 | /** |
||
| 40 | * @param Property[]|ClassMethod[]|ClassConst[]|Param[] $definitionMembers |
||
| 41 | * @return Property[]|ClassMethod[]|ClassConst[]|Param[] |
||
| 42 | */ |
||
| 43 | public function apply(array $definitionMembers): array |
||
| 44 | { |
||
| 45 | $members = $definitionMembers; |
||
| 46 | foreach ($this->filters as $filter) { |
||
| 47 | $members = array_filter($members, static fn (Stmt|Param $member): bool => $filter->accept($member)); |
||
| 48 | } |
||
| 49 | return $members; |
||
| 50 | } |
||
| 52 |