MVC框架的封装(十一)twig模板引擎

因为我们使用的也是一个第三方类,需要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模板引擎的使用就完成了!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值