因为我们使用的也是一个第三方类,需要composer来进行加载。所以我们需要修改composer.json这个文件,在require中添加一行代码:
"twig/twig":"*" //后边的*,说明我们对版本没有限制。然后,在cmd中,输入composer update,进行更新,完成以后,就需要我们去修改之前写的基础类中的display方法。
public function display($file){ //将文件路径拼出来 $file = APP.'/views/'.$file; //判断是不是文件,如果是文件就将文件引进来 if(is_file($file)){ $loader = new \Twig_Loader_Filesystem(APP.'/views'); $twig = new \Twig_Environment($loader,array( 'cache' => JWW.'/log/twig', 'debug' => DEBUG )); $template = $twig->loadTemplate('index.html'); $template->display($this->assign?$this->assign:''); } }思路和之前的一样,都是找到文件的位置,判断是不是文件,然后将下面的代码直接复制过去,然后修改缓存地址,也就是cache中的内容,把缓存路径修改完成后,配置方面就完成可。
其次就需要我们将页面展示出来。
namespace app\controller; use core\lib\model; class indexController extends \core\ww{ public function index(){ $data = "Hello World"; $this->assign('data',$data); $this->display('index.html'); } }在控制器的方法中,将值传过去,显示在页面上,不过在这个第三方类中,页面显示和我们之前的有所不同。
下面给大家看一下页面中显示变量的代码:
<h1>{{ data }}</h1>用两对花括号,直接就是变量名,就可以将传过来的变量显示出来。
最后,我们还可以建立一个公共模板,让其他的页面都继承于这个模板,建立一个公共模板,名为layout.html。其中的代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <content> {% block content %} {% endblock%} </content> <footer>footer</footer> </body> </html>这就是我们的公共模板,我们就可以将其他页面中的内容放在block content里面。
下面给大家示例一下,我们展示我们的index.html页面。
{% extends "layout.html"%} //继承layout模板 {% block content %} //将内容放在block content中。 {{ data }} {% endblock%}那么我们的twig模板引擎的使用就完成了!