Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

43 linhas
1.2KB

  1. <?php
  2. namespace domain\Feature\Feature;
  3. use domain\Feature\FeatureProducer\FeatureProducerBuilder;
  4. use domain\_\AbstractManager;
  5. class FeatureManager extends AbstractManager
  6. {
  7. protected FeatureBuilder $featureBuilder;
  8. protected FeatureProducerBuilder $featureProducerBuilder;
  9. public function loadDependencies(): void
  10. {
  11. $this->featureBuilder = $this->loadService(FeatureBuilder::class);
  12. $this->featureProducerBuilder = $this->loadService(FeatureProducerBuilder::class);
  13. }
  14. public function enableFeature(Feature $feature): void
  15. {
  16. $this->featureBuilder->updateStatus($feature, true);
  17. }
  18. public function disableFeature(Feature $feature): void
  19. {
  20. $this->featureBuilder->updateStatus($feature, false);
  21. }
  22. public function enableFeatureForProducer(Feature $feature)
  23. {
  24. $this->featureProducerBuilder->updateStatusByFeature($feature, true);
  25. }
  26. public function disableFeatureForProducer(Feature $feature)
  27. {
  28. $this->featureProducerBuilder->updateStatusByFeature($feature, false);
  29. }
  30. public function defaultFeatureForProducer(Feature $feature)
  31. {
  32. $this->featureProducerBuilder->updateStatusByFeature($feature, null);
  33. }
  34. }