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'] #}
筛选器
可以使用过滤器格式化或修改变量。管道运算符(|)用于将过滤器应用于变量:
{{ 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表示形式 |
评论前必须登录!
注册