diff --git a/src/LaunchDarkly/Impl/Integrations/GuzzleFeatureRequester.php b/src/LaunchDarkly/Impl/Integrations/GuzzleFeatureRequester.php index 51074f354..9b7fe7f94 100644 --- a/src/LaunchDarkly/Impl/Integrations/GuzzleFeatureRequester.php +++ b/src/LaunchDarkly/Impl/Integrations/GuzzleFeatureRequester.php @@ -5,6 +5,7 @@ use GuzzleHttp\Exception\BadResponseException; use GuzzleHttp\HandlerStack; use Kevinrob\GuzzleCache\CacheMiddleware; +use Kevinrob\GuzzleCache\Strategy\CacheStrategyInterface; use Kevinrob\GuzzleCache\Strategy\PublicCacheStrategy; use LaunchDarkly\FeatureFlag; use LaunchDarkly\FeatureRequester; @@ -35,7 +36,10 @@ public function __construct($baseUri, $sdkKey, $options) $this->_logger = $options['logger']; $stack = HandlerStack::create(); if (class_exists('Kevinrob\GuzzleCache\CacheMiddleware')) { - $stack->push(new CacheMiddleware(new PublicCacheStrategy(isset($options['cache']) ? $options['cache'] : null)), 'cache'); + $cacheOption = isset($options['cache']) ? $options['cache'] : null; + $cacheOption instanceof CacheStrategyInterface + ? $stack->push(new CacheMiddleware($cacheOption), 'cache') + : $stack->push(new CacheMiddleware(new PublicCacheStrategy($cacheOption)), 'cache'); } elseif (!$this->_loggedCacheNotice) { $this->_logger->info("GuzzleFeatureRequester is not using an HTTP cache because Kevinrob\GuzzleCache\CacheMiddleware was not installed"); $this->_loggedCacheNotice = true;