Symfony: использование глобальных переменных - PullRequest
0 голосов
/ 25 июня 2018

Я знаю ... держись подальше от глобалов.

Дело в том, что мне действительно, действительно, нужно иметь значение, которое доступно и, самое главное, изменяемое из разных частейприложение.Это счетчик для некоторых действий, которые мне нужно наблюдать в целях отладки.Поиск в Google по всем вопросам, связанным с Symfony и глобальными переменными, всегда приводил меня к результатам, которые предлагают использовать параметры Container или глобальные переменные Twig, но дело в том, что согласно документации Symfony:

Вы можете установить только параметр передконтейнер компилируется: не во время выполнения.

Глобалы Twig в значительной степени находятся вне области видимости, поскольку они мне нужны в контроллере, а не в поле зрения.

ИМХО, обаиз этих решений больше похожи на константы, чем на переменные.

Итак, вопрос в следующем: есть ли лучшая практика для получения того, что мне нужно, с помощью Symfony или я должен просто использовать глобальные переменные PHP?

Спасибо!

1 Ответ

0 голосов
/ 25 июня 2018

Создайте службу (например: ApplicationGlobals) с частным свойством $counter и общедоступным установщиком и получателем для чтения и записи значения.Класс сервиса будет создан автоматически и может быть доступен из любого места, где вы можете использовать контейнер (получить его в контроллере или передать в качестве аргумента другим сервисам).

В последствии вы сможете добавлять несколько переменных, когда это необходимо, с их соответствующими геттерами и сеттерами и использовать их в своем проекте.

Я думаю, вы могли бы даже написать деструктор, который будет хранить новое значение, когда Symfony завершит работу.http://symfony.com/doc/current/service_container.html#creating-configuring-services-in-the-container

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...