2016-03-07 5 views
-1

Я совершенно новой для Symfony ...Symfony 3 Использование параметра

И у меня есть (некоторые) проблемы ...

У меня есть различные конфигурации для разработчика и прод, как почти у всех. Я хочу использовать параметр, определенный в config_dev.yml и config_prod.yml следующим образом (разной в двух файлах)

parameters: 
    site_root: '/path/to/my/web/folder/root/' 

я могу повторно использовать это значение, $this->getParameter('site_root'), в контроллере, но мне нужно, чтобы использовать его в классах для того, чтобы иметь возможность сохранять файлы и т.д. я не могу найти способ ...

Спасибо за помощь

+3

Внедрить их в классы – Federkun

ответ

0

В конце концов я использовал относительную связь с __DIR__.'/../../path/I/want/' вместо идти от маршрута. (В случае, если это помогает кому-то ...)

3

YML определение сервиса (services.yml):

services: 
    my_class: 
     class: Foo\Bar\MyClass 
     arguments: 
      - %site_root% 

Это параметр ввода site_root в качестве аргумента для MyClass :: __ construct

+0

Спасибо. Значит, я должен определить его для всех классов? Нет более «элегантного» способа? – Laurent

+0

Ах нет, я не совсем понял ... На самом деле это будет принимать значение из конфигурации, а затем использовать его для разных классов, перечисленных в сервисах? – Laurent

+0

Только для устройств –

0

Поскольку мне не удается заставить решение Артура работать (возможно, у меня еще нет знаний), я передаю этот параметр конструктору класс ... (Может быть, это то, что Федерико имел в виду, впрыскивая в классовую).

Это не совсем «элегантный», но он достигает того, что мне нужно, ожидая, чтобы иметь больше знаний ...

Благодаря