Symfony2 bundle特定的Twig配置/变量



我知道我可以在我的app/config/config.yml中设置Twig变量,但是我想在每个bundle级别(例如:Bundle/Resources/config/??.yml)设置变量。

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

我怎样才能做到这一点?

我不确定如何为您的示例实现bundle特定的配置。bundle中的配置倾向于被导入到主配置文件中,这些主配置文件现在是特定于环境的,而不是特定于bundle的。

然而,对于你的例子,我只会做一个小枝扩展,它返回你正在使用的包的名称。这样你就可以在模板中任何你喜欢的地方使用它。你可以从请求中获得控制器的完整命名路由,然后只需要使用preg matching来获得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已在构造函数中设置为容器的实例。如果您正在使用其他方法来获取控制器,那么请相应地替换

最新更新