october中使用twig模板语言扩展为多个函数,标签,过滤器和变量。这些扩展允许您使用CMS功能并访问模板中的页面环境信息。
变量
模板变量使用双大括号打印在页面上。
{{ variable }}
变量也可以表示表达式。
{{ isAjax ? 'Yes' : 'No' }}
变量可以与~字符连接。
{{ 'Your name: ' ~ name }}
october 在变量下提供了全局变量this,如变量部分所列。
标签
逻辑判断、模板上流程处理
标签是Twig的独特功能,并且包含{% %}字符。
{% tag %}
标签提供了更流畅的描述模板逻辑的方法。
{% if stormCloudComing %}
Stay inside
{% else
Go outside and play
{% endif %}
该{% set %}标签可以用来设置模板中的变量。
{% set activePage = 'blog' %}
该{% for item in items %}设置循环
{% for post in category.posts %}
{{post.title}}
{% endfor %}
过滤器
过滤器作为单个实例的变量的修饰符,并使用管道符号后跟过滤器名称进行应用。
{{ 'string'|filter }}
{{ post.content|md}}
过滤器可以像函数一样使用参数。
{{ price|currency('USD') }}
过滤器可以连续应用。
{{ 'October Glory'|upper|replace({'October': 'Morning'}) }}
函数
函数允许执行逻辑,返回结果作为一个变量。
{{ function() }}
函数可以引用
{{ dump(variable) }}
访问逻辑
了解Twig最重要的是如何访问PHP层。为方便起见{{ foo.bar }},对PHP对象进行以下检查:
- 检查是否foo是数组和bar有效元素。
- 如果不是,如果foo是对象,请检查是否bar是有效的属性。
- 如果没有,如果foo是一个对象,请检查是否bar是一个有效的方法(即使bar是构造函数 - 使用__construct()替代)。
- 如果不是,如果foo是对象,请检查是否getBar是有效的方法。
- 如果不是,如果foo是对象,请检查是否isBar是有效的方法。
- 如果没有,返回null值。
不支持twig的功能
不支持Twig提供的一些功能。它们列在下面的等效功能旁边。
标签 | 扩展 |
---|---|
{% extend %} | 使用layouts或{% placeholder %}替代 |
{% include %} | 使用{% partial %} or {% content %} |