| 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 | 56 | public function __construct(array $filters = []) |
|
| 35 | { |
||
| 36 | 56 | $this->filters = $filters; |
|
| 37 | } |
||
| 38 | |||
| 39 | /** |
||
| 40 | * @param Property[]|ClassMethod[]|ClassConst[]|Param[] $definitionMembers |
||
| 41 | * @return Property[]|ClassMethod[]|ClassConst[]|Param[] |
||
| 42 | */ |
||
| 43 | 47 | public function apply(array $definitionMembers): array |
|
| 44 | { |
||
| 45 | 47 | $members = $definitionMembers; |
|
| 46 | 47 | foreach ($this->filters as $filter) { |
|
| 47 | 14 | $members = array_filter($members, static fn (Stmt|Param $member): bool => $filter->accept($member)); |
|
| 48 | } |
||
| 49 | 47 | return $members; |
|
| 50 | } |
||
| 52 |