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 |