如何向所有模板中注入变量(即全局变量)

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 3.3,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

如何向所有模板中注入变量(即全局变量)

有时,您希望所有使用的模板都可以访问某个变量。这在你的应用程序/配置/ config.yml文件:

  • YAML
  • XML
  • PHP
1 2 3 4 5
# app / config / config.yml枝:#……全局变量:ga_tracking:UA-xxxxx-x

现在,变量ga_tracking在所有的Twig模板中可用:

1
<p>谷歌跟踪码为:{{ga_tracking}}p>

就是这么简单!

使用服务容器参数

您还可以利用内置的服务容器系统,它允许您隔离或重用值:

1 2 3
# app / config / parameters.yml参数:ga_tracking:UA-xxxxx-x
  • YAML
  • XML
  • PHP
1 2 3 4
# app / config / config.yml枝:全局变量:ga_tracking:“% ga_tracking %”

与以前完全相同的变量是可用的。

引用服务

除了使用静态值,还可以将值设置为服务。无论何时在模板中访问全局变量,服务容器都会请求该服务,您就可以访问该对象。

请注意

服务不会延迟加载。换句话说,只要加载了Twig,您的服务就被实例化了,即使您从未使用过这个全局变量。

要将服务定义为全局Twig变量,请在字符串前加上@.这应该感觉很熟悉,因为它与您在服务配置中使用的语法相同。

  • YAML
  • XML
  • PHP
1 2 3 4 5 6
# app / config / config.yml枝:#……全局变量:该值是服务的iduser_management:“@AppBundle \ \ UserManagement服务”
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。