From 7dbc4c333687cf1ed431dc186c98c3791bbba048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Verena=20R=C3=B6=C3=B6sli?= Date: Tue, 19 Oct 2021 17:07:42 +0200 Subject: [PATCH] Added filter method to DependencyCollection --- .../CollectFilteredDependenciesCommandHandler.php | 11 +++-------- src/Dependency/DependencyCollection.php | 11 +++++++++++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/Command/Handler/CollectFilteredDependenciesCommandHandler.php b/src/Command/Handler/CollectFilteredDependenciesCommandHandler.php index 70479112..7d4a00da 100644 --- a/src/Command/Handler/CollectFilteredDependenciesCommandHandler.php +++ b/src/Command/Handler/CollectFilteredDependenciesCommandHandler.php @@ -11,15 +11,10 @@ final class CollectFilteredDependenciesCommandHandler { public function collect(FilterDependencyCollectionCommand $command): DependencyCollection { - $dependencyCollection = new DependencyCollection(); $namedExclusion = $command->getNamedExclusion(); - foreach ($command->getRequiredDependencyCollection() as $dependency) { - if (!in_array($dependency->getName(), $namedExclusion)) { - $dependencyCollection->add($dependency); - } - } - - return $dependencyCollection; + return $command->getRequiredDependencyCollection()->filter(static function ($dependency) use ($namedExclusion) { + return !in_array($dependency->getName(), $namedExclusion); + }); } } diff --git a/src/Dependency/DependencyCollection.php b/src/Dependency/DependencyCollection.php index db989387..da3a78ac 100644 --- a/src/Dependency/DependencyCollection.php +++ b/src/Dependency/DependencyCollection.php @@ -65,4 +65,15 @@ public function partition(Closure $partition): array new self($noMatches) ]; } + + /** + * @param Closure $fn + * @return DependencyCollection + */ + public function filter(Closure $fn): DependencyCollection + { + return new self( + array_filter($this->items, $fn) + ); + } }