src/Twig/SettingsExtension.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Twig;
  3. use App\Repository\SettingRepository;
  4. use Twig\Extension\AbstractExtension;
  5. use Twig\TwigFunction;
  6. class SettingsExtension extends AbstractExtension
  7. {
  8. private string $siteKey;
  9. public function __construct(SettingRepository $settingRepository, string $siteKey)
  10. {
  11. $this->settingRepository = $settingRepository;
  12. $this->siteKey = $siteKey;
  13. }
  14. public function getFunctions(): array
  15. {
  16. return [
  17. new TwigFunction('get_setting', [$this, 'getSetting']),
  18. new TwigFunction('turnstile_site_key', [$this, 'getSiteKey']),
  19. ];
  20. }
  21. public function getSiteKey(): string
  22. {
  23. return $this->siteKey;
  24. }
  25. public function getSetting(string $key, string $default = ''): string
  26. {
  27. $setting = $this->settingRepository->findOneBy(['settingKey' => $key]);
  28. return $setting ? ($setting->getSettingValue() ?? $default) : $default;
  29. }
  30. }