Использование параметров
Параметры задаются в отдельном файле app/config/parameters.yml (также можно и в app/config/config.yml), назначим параметр site_name:
parameters:
site_name: "Название сайта"
Далее выведем его в контроллере:
echo $this->container->getParameter('site_name');
Использование конфигураций
Создадим бандл AcmeDemoBundle, переходим к созданию дерева конфигураций
Acme/DemoBundel/DependencyInjection/Configuration.php
назначим "site_name" со стандартным значением "Site name"
...
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('acme_demo');
$rootNode
->children()
->scalarNode('site_name')->defaultValue('Site name')->end()
->end();
return $treeBuilder;
}
...
теперь зарегистрируем конфигурацию как параметр, для вызова в любом месте кода, перейдем в файл
Acme/DemoBundel/DependencyInjection/AcmeDemoExtension.php
...
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
// получаем значение site_name и записываем его в параметр acme_demo.site_name (название параметра можно изменить на любой)
$container->setParameter('acme_demo.site_name', $config['site_name']);
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');
}
...
далее получаем конфиг как обычный параметр
// выведет стандартное значение "Site name"
echo $this->container->getParameter('acme_demo.site_name');
переназначим стандартное значение на свое, для этого перейдем в файл конфигураций app/config/config.yml и добавим следующие строки
acme_demo:
site_name: "Название сайта"
теперь при выводе параметра получим наше новое значение.