matchers = $matchers; } public function supports(mixed $item): bool { if ($this->matchers === []) { return false; } foreach ($this->matchers as $matcher) { if (!$matcher->supports($item)) { return false; } } return true; } public function match(mixed $item): bool { if ($this->matchers === []) { return false; } foreach ($this->matchers as $matcher) { if (!$matcher->match($item)) { return false; } } return true; } }