volt模板引擎并不直接支持php函数,有时候我们会用到php函数进行输出过滤或者格式化,所以我们得对volt进行扩展。我们可以先做个测试:
在home模块下的ViewController.php控制器中创建一个indexAction()的方法。如下图所示:
在对应的视图目录下创建index.volt模板,如下图所示:
这个时候访问view/index就会报错。
下面就开始对volt引擎做扩展:
1、在library/extensions目录下创建VoltExtension.php扩展。
这里只扩展了在编译(compileFunction)和过滤(compileFilter)时使用php函数,你也可以根据需要加入别的规则
<?php
/**
* @desc volt模板引擎扩展
* @author zhaoyang
* @date 2018年5月5日 下午9:06:34
*/
namespace Library\Extensions;
class VoltExtension {
/**
* @desc Triggered before trying to compile any function call in a template
* @author zhaoyang
* @date 2018年5月5日 下午9:06:55
*/
public function compileFunction($name, $arguments) {
if (function_exists($name)) {
return $name . '(' . $arguments . ')';
}
}
/**
* @desc Triggered before trying to compile any filter call in a template
* @author zhaoyang
* @date 2018年5月5日 下午9:07:07
*/
public function compileFilter($name, $arguments) {
if (function_exists($name)) {
return $name . '(' . $arguments . ')';
}
}
/**
* @des