Только начал изучение Symfony после Larael и Yii, но не могу понять как использовать singleton в рамках Symfony.
В общем предполагается создать класс Setting:
<?php
namespace App\Service;
class Setting
{
private static $instance;
private array $settings;
protected function __construct() {}
public function get($key)
{
if (empty($settings)) {
$this->settings = // тут каким-то образом сделать запрос к базе
}
return $this->settings[$key] ?? null;
}
public static function getInstance(): self
{
if (null === static::$instance) {
static::$instance = new static();
}
return static::$instance;
}
}
Но не понимаю каким образом я могу сделать запрос к базе. И потом использовать этот класс как в контроллерах так и в шаблонах twig.
Решил пойти через сервисы, с базой проблемы нет, в конструкторе у меня EntityManagerInterface, но дальше не пойму. В контроллере я также через DI, в шаблоне через глобальную переменную. Но в итоге symfony делает кучу запросов к базе, так как видимо сервис это не singleton.
В какую сторону копать? Уже всю голову сломал.