首页 > 代码库 > 构建自己的PHP框架(Twig模板引擎)
构建自己的PHP框架(Twig模板引擎)
Twig 模板引擎
模版引擎 twig 的模板就是普通的文本文件,也不需要特别的扩展名,.html .htm .twig 都可以。模板内的 变量 和 表达式 会在运行的时候被解析替换,标签(tags)会来控制模板的逻辑。
安装Twig
命令行运行:
composer require "twig/twig:~1.0"
在services目录下创建Twig.php:
<?php /** * Class Twig */ class Twig { public $view; public $data; public $twig; public $path = BASE_PATH . ‘/app/Views/‘; /** * Twig constructor. * @param $view * @param $data */ public function __construct($view, $data) { $loader = new Twig_Loader_Filesystem($this->path); $this->twig = new Twig_Environment($loader, array( ‘cache‘ => BASE_PATH . ‘/cache/views/‘, ‘debug‘ => true )); $this->view = $view; $this->data = http://www.mamicode.com/$data; } /** * @param $view * @param array $data * @return Twig */ public static function render($view, $data = array()) { return new Twig($view, $data); } public function __destruct() { $this->twig->display($this->view, $this->data); } }
执行命令:
composer dump-autoload
在app/Views/ 下分别创建一个app.twig文件和index.twig 文件(.html文件也是可以的):
{#app.twig#} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>app</title> </head> <body> <header>header</header> {% block content %} {% endblock %} <footer>footer</footer> </body> </html>
{#index.twig#}
{% extends ‘app.twig‘ %}
{% block content %}
hello {{ data.name }}, your mobile is {{ data.mobile }}
{% endblock %}
在控制器中添加:
$data = [‘data‘ => [‘name‘ => ‘evai‘, ‘mobile‘ => 12345678910]]; return Twig::render(‘index.twig‘, $data);
刷新浏览器,可以看到显示如下页面:
详细文档请参考twig官网地址。
构建自己的PHP框架(Twig模板引擎)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。