VOLT(模板引擎)

Volt提供了Phalcon快速执行, 因为它非常快速, 并且是用C语言为PHP编写的对设计人员友好的模板语言。它定义了许多帮助程序来编写视图。 Volt受Jinja启发, 由Armin Ronacher撰写。
实例
Volt视图以php编译, 从而节省了手动编写php代码的时间。

{# app/views/products/show.volt #} {% block last_products %} {% for product in products %} * Name: {{ product.name|e }} {% if product.status === 'Active' %} Price: {{ product.price + product.taxes/100 }} {% endif%} {% endfor%} {% endblock %}

激活电压
在此, 我们在扩展名为.phtml的视图组件中注册Volt。
< ?php use Phalcon\Mvc\View; use Phalcon\Mvc\View\Engine\Volt; // Register Volt as a service $di-> set( 'voltService', function ($view, $di) { $volt = new Volt($view, $di); $volt-> setOptions( [ 'compiledPath'=> '../app/compiled-templates/', 'compiledExtension' => '.compiled', ] ); return $volt; } ); // Register Volt as template engine $di-> set( 'view', function () { $view = new View(); $view-> setViewsDir('../app/views/'); $view-> registerEngines( [ '.volt' => 'voltService', ] ); return $view; });

可用电压选项
Option Description Default
compiledPath 放置已编译PHP模板的可写路径 ./
compiledExtension 附加的扩展名附加到已编译的PHP文件中 .php
compiledSeparator Volt用此分隔符替换目录分隔符/和\, 以便在已编译目录中创建单个文件 %%
Stat Phalcon是否必须检查模板文件及其编译路径之间是否存在差异 True
compileAlways 告诉Volt模板是否必须在每个请求中编译或仅在它们更改时编译 False
Prefix 允许在编译路径中在模板之前添加前缀 Null
autoescape 启用HTML的全局自动转义 False
变数对象变量可能具有可以使用以下语法访问的属性:foo.bar。如果要传递数组, 则必须使用方括号语法:foo [‘ bar’ ]
{{ post.title }} {# for $post-> title #} {{ post['title'] }} {# for $post['title'] #}

筛选器
【VOLT(模板引擎)】可以使用过滤器格式化或修改变量。管道运算符(|)用于将过滤器应用于变量:
{{ post.title|e }} {{ post.content|striptags }} {{ name|capitalize|trim }}

以下是可以使用的过滤器列表:
Filter Description
abs 将Abs PHP函数应用于一个值。
Capitalize 通过将ucwords PHP函数应用于该值来大写字符串
convert_encoding 将字符串从一个字符集转换为另一个字符集
Default 设置默认值, 以防评估的表达式为空(未设置或评估为伪造的值)
escape 将Phalcon \ Escaper-> escapeHtml()应用于值
escape_attr 将Phalcon \ Escaper-> escapeHtmlAttr()应用于该值
json_encode 将值转换为其JSON表示形式
json_decode 将值从其JSON表示形式转换为PHP表示形式

    推荐阅读