框架入门 中级篇 (中)twig模板引擎

本文介绍了一个PHP框架如何通过集成Twig模板引擎改善前端工程师的工作体验,包括提升安全性、规范性和性能等,并提供了具体实现步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们的框架已经相当完善了

那么我们的php视图层在数据渲染的时候还是需要大量的php标签来完成

这样对于使用这个框架但不懂php语言的前端工程师来说 是一件非常糟糕的体验

为了解决这个问题 我们有了模板引擎这个概念

我们首先看看使用模板引擎的好处

1.安全,比如默认转义输出
2.规范,防止团队中有人在视图中写大量的逻辑代码
3.性能,据说可以提高性能
4.可读,个人认为twig或者laravel的blade引擎比php可读性好

那模板引擎的好处这么多 我们如何让我们的框架使用模板引擎呢

接下来我们就来为我们的框架加载一个 twig模板引擎

首先在我们的composer.json当中添加一行

"twig/twig":"*"

跟之前的一样

然后执行命令行

composer update

我们的twig引擎就让composer 自动安装好了

那么 怎么用呢

首先我们重写一下我们之前写的display方法

public function display($file)
    {
        $file = APP . '/views/' . $file;
        if(is_file($file))
        {
            \Twig_Autoloader::register();
            $loader = new \Twig_Loader_Filesystem(APP."/views");
            $twig = new \Twig_Environment($loader, array(
                'cache' => IMOOC.'/log/twig',
                'debug' => DEBUG
            ));
            $template = $twig->loadTemplate('index.html');
            $template->display($this->assign?$this->assign:'');
        }
    }

然后在控制器中加入如下代码

$data = "Hello world";
$this->assign("data",$data);
$this->display("index.html");

视图层我们使用模板引擎

{{ data }}

就可以输出我们的变量了

接着我们来引入一个layout 视图公共部分

<html>
<body>
<header>header</header>
<content>
    {% block content %}
    {% endblock %}
</content>
<footer>footer</footer>
</body>
</html>

然后我们在需要引入layout视图文件的地方

`
{% extends "layout.html" %}
{% block content %}
{{ data }}
{% endblock %}

继承那个视图
这样的们的twig模板引擎就完成了

我们的框架也相当完善了`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值