src/Services/Switcher/ServerFeatureStateManager.php line 23

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Slivki\Services\Switcher;
  4. use Slivki\Enum\SwitcherFeatures;
  5. use Slivki\Repository\ServerFeature\ServerFeatureStateRepositoryInterface;
  6. final class ServerFeatureStateManager implements ServerFeatureStateChecker
  7. {
  8.     private ServerFeatureStateRepositoryInterface $serverFeatureStateRepository;
  9.     private FeatureStateEvaluator $featureStateEvaluator;
  10.     public function __construct(
  11.         ServerFeatureStateRepositoryInterface $serverFeatureStateRepository,
  12.         FeatureStateEvaluator $featureStateEvaluator
  13.     ) {
  14.         $this->serverFeatureStateRepository $serverFeatureStateRepository;
  15.         $this->featureStateEvaluator $featureStateEvaluator;
  16.     }
  17.     public function isServerFeatureEnabled(SwitcherFeatures $serverFeature): bool
  18.     {
  19.         // warm-up runtime cache
  20.         $this->serverFeatureStateRepository->findAll();
  21.         return $this->featureStateEvaluator->evaluate(
  22.             $this->serverFeatureStateRepository->getById($serverFeature->getValue())
  23.         );
  24.     }
  25. }