<?php
namespace App\Twig;
use App\Repository\SettingRepository;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
class SettingsExtension extends AbstractExtension
{
private string $siteKey;
public function __construct(SettingRepository $settingRepository, string $siteKey)
{
$this->settingRepository = $settingRepository;
$this->siteKey = $siteKey;
}
public function getFunctions(): array
{
return [
new TwigFunction('get_setting', [$this, 'getSetting']),
new TwigFunction('turnstile_site_key', [$this, 'getSiteKey']),
];
}
public function getSiteKey(): string
{
return $this->siteKey;
}
public function getSetting(string $key, string $default = ''): string
{
$setting = $this->settingRepository->findOneBy(['settingKey' => $key]);
return $setting ? ($setting->getSettingValue() ?? $default) : $default;
}
}