Vir
@Vir
Программист

Symfony 2, чтение yml-конфигурации из контроллеров или сервисов?

Добрый день.


Решил по-тихоньку переползать на Symfony2, и вот возник вопрос, который пока самостоятельно решить не удаётся.


Каким образом читать данные из конфигурационных файлов (config.yml) в контроллере, или в сервисе. Сейчас пробою делать так:

1. В конфиге пишу:
test:
  bb: 1

2. В контроллере:
echo $this->container->getParameter('test.bb');

В ответ получаю ошибку. о том что не может найти.
  • Вопрос задан
  • 5843 просмотра
Пригласить эксперта
Ответы на вопрос 1
png
@png
тоже самое.
Однако использование котейнера внутри сервисов — это не правильно с точки зрения архитектуры. более правильно передавать параметры через конструктор или set-методы.
Основная дока тут: symfony.com/doc/current/book/service_container.html

по самим параметрам:

в файле sevices.yml — так же в любом другом (не обязательно сервисы)
может быть строчка
parameters:
test: 1

в файле config.yml тоже могут быть такие строки

а ещё есть файл paremeters.ini
test = 1


а ещё есть переменные окружения. их тоже можно доставать так же через параметры.

если хочешь чтобы параметр попал в конструктор сервиса, то указываешь его имя
%test%

пример, из офф документации:
# src/Acme/HelloBundle/Resources/config/services.yml
parameters:
my_mailer.class: Acme\HelloBundle\Mailer
my_mailer.transport: sendmail

services:
my_mailer:
class: %my_mailer.class%
arguments: [%my_mailer.transport%]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы