2013-03-21 70 views
3

我知道我可以在我的app/config/config.yml设置枝条变量,但是我想在每捆级别设置变量(例如:Bundle/Resources/config/??.yml)。Symfony2的捆绑特定枝杈配置/变量

例如我想在我的页面的页脚中包含一个包版本标识符。我尝试将树枝配置放入我的捆绑包'services.yml,但Symfony无法解析配置。

我该如何做到这一点?

回答

1

我不确定如何在您的示例中实现特定于包的配置。捆绑包中的配置往往会被导入到主要的配置文件中,这些配置文件现在是特定于环境的,而不是捆绑特定的。

但是,对于您的示例,我只需制作一个树枝扩展,它将返回您正在使用的软件包的名称。这样,您可以在模板中随时随地使用它。您可以从请求中获取控制器的完整命名路由,然后使用preg匹配来获取Bundle名称。像下面的东西应该工作:

public function getBundleName() 
{ 
    $pattern = "#([a-zA-Z]*)Bundle#"; 
    $matches = array(); 
    preg_match($pattern, $this->container->get('request')->get('_controller'), $matches); 
    return $matches[1]; 
} 

在这个例子中$this->container已经在构造函数中被设置为容器的一个实例。如果您使用其他方法获取控制器,则相应地进行替换。