我目前有一个捆绑包,我从/app/config/config.yml文件中定义了它的参数
foo:
facebook:
page:
name: %facebook_page_name%
然后我在我的控制器中通过以下方式访问它:
$this->container->getParameter('facebook.page.name');
我目前所做的工作是在FooExtension中
public function load(array $configs, ContainerBuilder $container)
{
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('config.yml');
$loader->load('services.yml');
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
if (isset($config['facebook'])) {
if (isset($config['facebook']['page'])) {
if (isset($config['facebook']['page']['name'])) {
$container->setParameter('facebook.page.name', $config['facebook']['page']['name']);
}
}
}
}
你会同意我的看法,这令人筋疲力尽。我该如何自动完成?我到处搜索,但绝对是我遗漏的东西。但什么?
答案 0 :(得分:1)
如果你只需要传递一些参数,没有什么比提供默认值,参数数组或检查配置更合适,你可以设置一些这样的参数:
# app/config/config.yml
parameters:
facebook.page.name: %facebook_page_name%
然后你可以使用相同的代码在控制器中获取它们:
$this->container->getParameter('facebook.page.name');
答案 1 :(得分:1)
嗯,就是这样,除非你想在配置中明确地将它们设置为参数。
虽然如果它是一个必需的树结构,并且你已经通过bundle中的配置类验证它,你实际上并不需要用条件和issets来调整它。
这不是真的很痛苦,也不辛苦,远非如此,我很伤心不同。