Symfony2CookBook:如何将变量注入全部模板(如全局变量)

简介:

Sometimes you want a variable to be accessible to all the templates you use. This is possible inside your app/config/config.yml file:
有时您希望有个变量能够被您所使用的所有模板访问,这可以在您app/config/config.yml文件中设定:

 
  1. # app/config/config.yml 
  2. twig: 
  3.     # ... 
  4.     globals: 
  5.         ga_tracking: UA-xxxxx-x 

Now, the variable ga_tracking is available in all Twig templates:
现在,变量ga_tracking可以被所有Twig模板访问:

 
  1. <p>Our google tracking code is: {{ ga_tracking }} </p> 

It's that easy! You can also take advantage of the built-in Service Parameters system, which lets you isolate or reuse the value:
这很容易!您也可以利用内建的服务参数系统,该系统可以让您隔离或重用该值:

 
  1. ; app/config/parameters.yml 
  2. [parameters] 
  3.     ga_tracking: UA-xxxxx-x
 
  1. # app/config/config.yml 
  2. twig: 
  3.     globals: 
  4.         ga_tracking: %ga_tracking% 

The same variable is available exactly as before.
该变量同先前完全相同。

More Complex Global Variables
更复杂的全局变量

If the global variable you want to set is more complicated - say an object - then you won't be able to use the above method. Instead, you'll need to create a Twig Extension and return the global variable as one of the entries in the getGlobals method.
如果您要设置的全局变量更复杂(如一个对象),那么您将无法使用上述方法。相反,您需要创建一个Twig扩展并返回全局变量。该全局变量作为getGlobals方法返回的全局变量列表中的成员。



本文转自 firehare 51CTO博客,原文链接:http://blog.51cto.com/firehare/1008587,如需转载请自行联系原作者

相关文章
|
3月前
|
Python
深入解析 Python中的命名空间和作用域并举例
【8月更文挑战第15天】Python中的命名空间与作用域是理解变量组织与访问的核心。命名空间是名称到对象的映射,分为全局、局部和内置三种。作用域定义变量的可访问范围,遵循LEGB规则:局部(L)、闭包(E)、全局(G)、内置(B)。示例展示了如何通过`nonlocal`声明跨作用域修改变量。这些机制确保了变量的有效管理和代码的高效执行。
49 0
|
5月前
|
存储 Python
Python的命名空间和作用域分析
在Python中,命名空间(Namespace)是用来存储变量名和对象引用之间映射关系的字典,而作用域(Scope)是指程序中变量可以被访问的区域范围。Python中的命名空间是用来存储变量名和对象引用之间映射关系的字典,Python中存在3种命名空间:内置命名空间、全局命名空间和局部命名空间。Python中存在3种命名空间:内置命名空间、全局命名空间和局部命名空间。局部作用域:由局部命名空间定义,在函数内部定义的变量只能在该函数内部访问。在全局命名空间中定义的变量可以在模块内的任何函数或类中直接使用。
51 3
|
11月前
|
前端开发 小程序 PHP
laravel5.8(四)引入自定义常量文件及公共函数文件
开发过程中,我们一般会用到一些不会改变,或者改变不是很频繁的值,这样的值我们一般将他们定义成常量。 比如网站根目录,或者分页数,或者域名等等。 那我们如何在laravel5.8中引入自定义的常量文件及公共的函数文件呢。 大概有两种方式: 1:框架目录下引入(不推荐) 在框架目录vendor下新建常量文件const.php,以及公共函数文件function.php 在autoload.php文件中引入。 这种方法是可以的,但是不推荐,框架目录下最好都是框架自己的那些文件,正常来说,框架的文件我们在开发过程中,git是不会进行托管的。 2:在app目录下引入 在bootstrap目录下新建常量文件
70 0
Go语言之自定义模板,引用多个模板html文件嵌套使用
Go语言之自定义模板,引用多个模板html文件嵌套使用
291 0
Go语言之自定义模板,引用多个模板html文件嵌套使用
Go语言之自定义模板,函数体解析到HTML模板
Go语言之自定义模板,函数体解析到HTML模板
182 0
Go语言之自定义模板,函数体解析到HTML模板
|
JavaScript 前端开发 PHP
laravel 模板变量赋值给js变量
laravel 模板变量赋值给js变量
160 0
|
JavaScript
typescript74-创建自己的类型声明文件(为已有js提供声明文件)
typescript74-创建自己的类型声明文件(为已有js提供声明文件)
73 0
typescript74-创建自己的类型声明文件(为已有js提供声明文件)
|
JavaScript
typescript75-创建自己的类型声明文件(为已有js提供声明)
typescript75-创建自己的类型声明文件(为已有js提供声明)
74 0
typescript75-创建自己的类型声明文件(为已有js提供声明)
【Groovy】Groovy 脚本调用 ( Groovy 脚本中的作用域 | 本地作用域 | 绑定作用域 )
【Groovy】Groovy 脚本调用 ( Groovy 脚本中的作用域 | 本地作用域 | 绑定作用域 )
393 0
【Groovy】Groovy 脚本调用 ( Groovy 脚本中的作用域 | 本地作用域 | 绑定作用域 )