diff --git a/packages/discovery/src/BootDiscovery.php b/packages/discovery/src/BootDiscovery.php index df677e88f..c9e4bd680 100644 --- a/packages/discovery/src/BootDiscovery.php +++ b/packages/discovery/src/BootDiscovery.php @@ -28,16 +28,18 @@ public function __construct( /** * @param class-string[]|null $discoveryClasses * @param DiscoveryLocation[]|null $discoveryLocations + * + * @return Discovery[] */ - public function __invoke( - ?array $discoveryClasses = null, - ?array $discoveryLocations = null, - ): void { + public function __invoke(?array $discoveryClasses = null, ?array $discoveryLocations = null): array + { $discoveries = $this->build($discoveryClasses, $discoveryLocations); foreach ($discoveries as $discovery) { $this->applyDiscovery($discovery); } + + return $discoveries; } /** @@ -45,10 +47,8 @@ public function __invoke( * @param DiscoveryLocation[]|null $discoveryLocations * @return Discovery[] */ - public function build( - ?array $discoveryClasses = null, - ?array $discoveryLocations = null, - ): array { + public function build(?array $discoveryClasses = null, ?array $discoveryLocations = null): array + { $discoveryLocations ??= $this->config->locations; if ($discoveryClasses === null) { diff --git a/packages/discovery/src/GenerateDiscoveryCache.php b/packages/discovery/src/GenerateDiscoveryCache.php index e6f426d6c..6ff6c2177 100644 --- a/packages/discovery/src/GenerateDiscoveryCache.php +++ b/packages/discovery/src/GenerateDiscoveryCache.php @@ -9,6 +9,7 @@ final class GenerateDiscoveryCache /** * @param class-string[]|null $discoveryClasses * @param DiscoveryLocation[]|null $discoveryLocations + * @param Discovery[]|null $discoveries */ public function __invoke( ContainerInterface $container, @@ -16,17 +17,16 @@ public function __invoke( DiscoveryCache $cache, ?array $discoveryClasses = null, ?array $discoveryLocations = null, + ?array $discoveries = null, ): void { $originalStrategy = $cache->strategy; $cache = $cache->withStrategy(DiscoveryCacheStrategy::NONE); - $bootDiscovery = new BootDiscovery( + $discoveries ??= new BootDiscovery( container: $container, config: $config, cache: $cache, - ); - - $discoveries = $bootDiscovery->build($discoveryClasses, $discoveryLocations); + )->build($discoveryClasses, $discoveryLocations); foreach ($config->locations as $location) { $cache->store($location, $discoveries);