模板

October扩展了Twig模板语言 ,其中包含许多函数,标签,过滤器和变量。 这些扩展允许您使用CMS功能并访问模板中的页面环境信息。

变量

使用双花括号在页面上打印模板变量。

  1. {{ variable }}

变量也可以表示表达式

  1. {{ isAjax ? 'Yes' : 'No' }}

变量可以与~字符连接。

  1. {{ 'Your name: ' ~ name }}

十月在this变量下提供全局变量,如变量部分所列。

标签

标签是Twig的一个独特功能,包含{%%}字符。

  1. {% tag %}

标签提供了更流畅的方式来描述模板逻辑。

  1. {% if stormCloudComing %}
  2. 呆在家里
  3. {% else %}
  4. 去外面玩
  5. {% endif %}

{%set%}标签可用于在模板内设置变量。

  1. {% set activePage = 'blog' %}

标签可以采用许多不同的语法,并列在标签部分下。

过滤器

过滤器充当单个实例的变量的修饰符,并使用管道符号后跟过滤器名称来应用。

  1. {{ 'string'|filter }}

过滤器可以像函数一样使用参数。

  1. {{ price|currency('USD') }}

过滤器可以连续应用。

  1. {{ 'October Glory'|upper|replace({'October': 'Morning'}) }}

过滤器列在过滤器部分下。

方法

函数允许执行逻辑,返回结果充当变量。

  1. {{ function() }}

函数可以带参数。

  1. {{ dump(variable) }}

函数列在函数部分下。

访问逻辑

关于Twig最重要的一点是它如何访问PHP层。 为方便起见,{{foo.bar}}对PHP对象执行以下检查:

  1. 检查foo是否为数组,bar是否为有效元素。
  2. 如果没有,如果foo是一个对象,检查bar是否为有效属性。
  3. 如果没有,如果foo是一个对象,检查bar是一个有效的方法(即使bar是构造函数 - 使用__construct()代替)。
  4. 如果没有,如果foo是一个对象,检查getBar是否是一个有效的方法。
  5. 如果没有,如果foo是一个对象,检查isBar是否是一个有效的方法。
  6. 如果不是,则返回“null”值。

不支持的功能

Twig提供的一些功能在October不受支持。 它们列在等效功能旁边。

标签 相等
{% extend %} 使用Layouts`{%placeholder%}
{% include %} 使用 {% partial %}{% content %}