Symfony:获取包中的配置值
Symfony : get configuration values in a bundle
我创建了一个配置为 class 的包:
class Configuration implements ConfigurationInterface
{
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('mongo_image');
$rootNode
->children()
->scalarNode('mongo_server')
->cannotBeEmpty()
->isRequired()
->info('Mongo server')
->end();
$rootNode->children()
->scalarNode('mongo_port')
->defaultValue(27017)
->info('Mongo port')
->end();
........
return $treeBuilder;
}
}
然后我在 config.yml 中设置值。
如何在控制器中获取这些值?
添加您的分机 class
namespace YourBundle\DependencyInjection;
use ...
class YourExtension extends Extension
{
/**
* {@inheritdoc}
*/
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
foreach ($config as $parameter => $name) {
$container->setParameter(
'mongo_image.'.$parameter,
$name
);
}
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');
}
我创建了一个配置为 class 的包:
class Configuration implements ConfigurationInterface
{
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('mongo_image');
$rootNode
->children()
->scalarNode('mongo_server')
->cannotBeEmpty()
->isRequired()
->info('Mongo server')
->end();
$rootNode->children()
->scalarNode('mongo_port')
->defaultValue(27017)
->info('Mongo port')
->end();
........
return $treeBuilder;
}
}
然后我在 config.yml 中设置值。
如何在控制器中获取这些值?
添加您的分机 class
namespace YourBundle\DependencyInjection;
use ...
class YourExtension extends Extension
{
/**
* {@inheritdoc}
*/
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
foreach ($config as $parameter => $name) {
$container->setParameter(
'mongo_image.'.$parameter,
$name
);
}
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');
}