Где хранить различные параметры конфигурации в Symfony 3.4

Есть ли оптимальная практика для хранения различных параметров конфигурации, таких как длина почтового индекса, минимальная длина фамилии и т. д.?

Я хотел бы что-то вроде класса php со статическими функциями и свойствами, которые я могу использовать в любом месте моего проекта.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
1
0
243
4

Ответы 4

Для ветки 3. * я считаю, что файл services.yml - лучшее место для этого. Затем вы можете ввести эти значения в службы, которые в них нуждаются, или даже получить к ним доступ в своих контроллерах с помощью

$this->getParameter('param_name')

Подробнее об этом: см. Параметры обслуживания

а что делать, если мне нужен параметр не только в сервисе? Или мне нужно больше параметров? Должен ли я вводить их все? Я считаю этот подход не очень хорошим.

olek07 31.05.2018 22:40

Вы ищете услуги по параметрам.

В только что выпущенной версии Symfony 4.1 по умолчанию: https://symfony.com/blog/new-in-symfony-4-1-getting-container-parameters-as-a-service

В более старых версиях Symfony с такими пакетами, как https://github.com/Symplify/PackageBuilder/blob/master/README.md#2-all-parameters-available-in-a-service или собственная реализация. Это просто :)

В лучших практиках symfony они предлагают использовать параметры в services.yml, которые меняются, если вы никогда не измените этот параметр, поместите его в Entity как const или в какой-то абстрактный класс, который вы можете создать самостоятельно.

Документация по этому поводу:

https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration

Как указывают другие ответы, вы можете сохранять параметры с помощью файла parameters.yml.

Но для меня вы просите об ограничении свойств сущности. Если вы используете Doctrine, вы можете использовать для этой цели аннотации, как описано в документации: https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/annotations-reference.html

Другие вопросы по теме