vendor/julienvp/core-bundle/src/Model/SystemConfigurationManager.php line 22

Open in your IDE?
  1. <?php
  2. namespace JulienVP\CoreBundle\Model;
  3. use Doctrine\Persistence\ManagerRegistry;
  4. use Doctrine\Persistence\ObjectManager;
  5. use JulienVP\CoreBundle\Entity\SystemConfiguration;
  6. use JulienVP\CoreBundle\Repository\SystemConfigurationRepository;
  7. use JulienVP\LogBundle\Model\SiteLogManager;
  8. use Symfony\Component\Security\Core\Security;
  9. class SystemConfigurationManager
  10. {
  11.     private ObjectManager $em;
  12.     private SiteLogManager $logger;
  13.     private Security $security;
  14.     private SystemConfigurationRepository $systemConfigurationRepository;
  15.     public function __construct(ManagerRegistry $managerRegistrySecurity $securitySiteLogManager $logger)
  16.     {
  17.         $this->em $managerRegistry->getManager();
  18.         $this->logger $logger;
  19.         $this->security $security;
  20.         $this->systemConfigurationRepository $this->em->getRepository(SystemConfiguration::class);
  21.     }
  22.     /**
  23.      * Gets a particular system configuration variable with a key identifier.
  24.      * @param string $key The key that identifies the system configuration variable.
  25.      */
  26.     public function get(string $key): ?string
  27.     {
  28.         $systemConfiguration $this->systemConfigurationRepository->findOneBy(['name' => $key]);
  29.         if ($systemConfiguration !== null) {
  30.             if (!$systemConfiguration->isDev() || $this->security->isGranted('ROLE_DEV')) {
  31.                 return $systemConfiguration->getValue();
  32.             }
  33.         }
  34.         return null;
  35.     }
  36.     /**
  37.      * Gets a particular system configuration variable with a key identifier.
  38.      * @param string $key The key that identifies the system configuration variable.
  39.      */
  40.     public function getObj(string $key): ?SystemConfiguration
  41.     {
  42.         return $this->systemConfigurationRepository->findOneBy(['name' => $key]);
  43.     }
  44. }