diff --git a/CHANGELOG.md b/CHANGELOG.md index b2e148c..a90f33a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Support discovering PSR-17 factories of `guzzlehttp/psr7` package - Support discovering PSR-17 factories of `laminas/laminas-diactoros` pakcage +- `ClassDiscovery::getStrategies()` to retrieve the list of current strategies. ## 1.7.4 - 2020-01-03 diff --git a/spec/ClassDiscoverySpec.php b/spec/ClassDiscoverySpec.php index 4b9086c..e29b0ba 100644 --- a/spec/ClassDiscoverySpec.php +++ b/spec/ClassDiscoverySpec.php @@ -68,6 +68,11 @@ function it_prepends_strategies() { $this->find('Foobar')->shouldReturn('Added'); } + function it_retrieves_configured_strategies() { + $expect = [DiscoveryHelper::class]; + $this->getStrategies()->shouldReturn($expect); + } + function it_appends_strategies() { $candidate = ['class' => 'Added']; DiscoveryHelper::setClasses('Foobar', [$candidate]); diff --git a/src/ClassDiscovery.php b/src/ClassDiscovery.php index 355d076..ee280f3 100644 --- a/src/ClassDiscovery.php +++ b/src/ClassDiscovery.php @@ -124,6 +124,16 @@ public static function setStrategies(array $strategies) self::clearCache(); } + /** + * Returns the currently configured discovery strategies as fully qualified class names. + * + * @return string[] + */ + public static function getStrategies(): iterable + { + return self::$strategies; + } + /** * Append a strategy at the end of the strategy queue. *