如何向所有模板中注入变量(即全局变量)
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.4,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
如何向所有模板中注入变量(即全局变量)
有时,您希望所有使用的模板都可以访问某个变量。这在你的应用程序/配置/ config.yml
文件:
- YAML
- XML
- PHP
1 2 3 4 5
# app / config / config.yml枝:#……全局变量:ga_tracking:UA-xxxxx-x
1 2 3 4 5
<!——app/config/config.xml——><枝:配置><!——……--><枝:全球关键=“ga_tracking”>UA-xxxxx-x枝:全球>枝:配置>
1 2 3 4 5 6 7
/ / app / config / config . php$容器->loadFromExtension (“树枝”,数组(/ /……“全局”= >数组(“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 %”
1 2 3 4
<!——app/config/config.xml——><枝:配置><枝:全球关键=“ga_tracking”>% ga_tracking %枝:全球>枝:配置>
1 2 3 4 5 6
/ / app / config / config . php$容器->loadFromExtension (“树枝”,数组(“全局”= >数组(“ga_tracking”= >“% ga_tracking %”,),));
与以前完全相同的变量是可用的。
引用服务
除了使用静态值,还可以将值设置为服务。无论何时在模板中访问全局变量,服务容器都会请求该服务,您就可以访问该对象。
请注意
服务不会延迟加载。换句话说,只要加载了Twig,您的服务就被实例化了,即使您从未使用过这个全局变量。
要将服务定义为全局Twig变量,请在字符串前加上@
.这应该感觉很熟悉,因为它与您在服务配置中使用的语法相同。
- YAML
- XML
- PHP
1 2 3 4 5
# app / config / config.yml枝:#……全局变量:user_management:“@acme_user.user_management”
1 2 3 4 5
<!——app/config/config.xml——><枝:配置><!——……--><枝:全球关键=“user_management”>@acme_user.user_management枝:全球>枝:配置>
1 2 3 4 5 6 7
/ / app / config / config . php$容器->loadFromExtension (“树枝”,数组(/ /……“全局”= >数组(“user_management”= >“@acme_user.user_management”,),));
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。