Использование параметров
Параметры задаются в отдельном файле 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: "Название сайта"
теперь при выводе параметра получим наше новое значение.