感谢你来到这里
我真的很激动
盼望,能有你的支持
捐赠可扫描二维码转账支付
支付宝扫一扫付款
微信扫一扫付款
(微信为保护隐私,不显示你的昵称)
有时候,你希望变量能够进入你所使用的所有模板。在你的app/config/config.yml
文件中设置就可以做到:
1 2 3 4 5 | # app/config/config.yml
twig:
# ...
globals:
ga_tracking: UA-xxxxx-x |
1 2 3 4 5 | <!-- app/config/config.xml -->
<twig:config>
<!-- ... -->
<twig:global key="ga_tracking">UA-xxxxx-x</twig:global>
</twig:config> |
现在,在所有的Twig模板中都可以使用ga_tracking
变量了:
1 | <p>The google tracking code is: {{ ga_tracking }}</p> |
非常容易!
你也可以利用内置的服务参数系统,他可以让你独立和重用这个值:
1 2 3 | # app/config/parameters.yml
parameters:
ga_tracking: UA-xxxxx-x |
1 2 3 4 | # app/config/config.yml
twig:
globals:
ga_tracking: '%ga_tracking%' |
1 2 3 4 | <!-- app/config/config.xml -->
<twig:config>
<twig:global key="ga_tracking">%ga_tracking%</twig:global>
</twig:config> |
这个相同的变量使用和以前一样。
除了使用静态值,您还可以将该值设置为服务。每当全局变量在模板中被访问,就从服务容器中请求服务,并获取该对象。
这个服务不会延迟加载。换句话说,当Twig一被加载,即使你从来都没使用过这个全局变量,您的服务也会被实例化。
要定义一个服务为全局Twig变量,字符串前缀应该为@
。这应该感到熟悉,因为你在服务容器中也使用相同的语法。
1 2 3 4 5 | # app/config/config.yml
twig:
# ...
globals:
user_management: '@app.user_management' |
1 2 3 4 5 | <!-- app/config/config.xml -->
<twig:config>
<!-- ... -->
<twig:global key="user_management">@app.user_management</twig:global>
</twig:config> |
本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。