【问题标题】:Symfony2 bundle specific Twig configuration/variablesSymfony2 捆绑特定的 Twig 配置/变量
【发布时间】:2013-03-21 06:34:08
【问题描述】:

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

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

我怎样才能做到这一点?

【问题讨论】:

    标签: symfony


    【解决方案1】:

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

    但是,对于您的示例,我将创建一个 twig 扩展,它返回您正在使用的捆绑包的名称。这样您就可以在模板中的任何位置使用它。您可以从请求中获取控制器的全名路由,然后只需使用 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 已在构造函数中设置为容器的实例。如果您使用其他方法来获取控制器,请相应地替换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-16
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多