twig 模板引擎使渲染视图更加优雅
在使用 laravel 的时候接触过 blade 模板引擎。在学习的时候,接触到了另外一个强大的模板引擎:twig
官网:https://twig.sensiolabs.org/
中文手册:http://download.csdn.net/detail/chenmoimg_/9840505
一、首先我们使用 composer 下载下来
这是 composer.json 的内容:
{
"name":"test",
"description":"easy test",
"keywords":[
"easy","test"
],
"require":{
"php":">= 5.3.0",
"twig/twig":"*"
},
"repositories":{
"packagist":{
"type":"composer",
"url":"https://packagist.phpcomposer.com"
}
}
}
- cmd 进入到此文件目录,composer install 回车运行。
- 在此文件目录就会多了一个 《vendor》目录,我们的 twig 就在此目录里
二、简单使用 twig
Controller.php 内容:
<?php
class Controller{
//存储模板页面值。
protected $assign;
/***
* @ 模板页面赋值。
* @param $name
* @param $value
*/
public function assign($name,$value)
{
$this->assign[$name]=$value;
}
/***
* @ 渲染模板。
* @param $view
*/
public function display($view){
#当前项目所在目录
$dir=str_replace("\\","/",__DIR__);
#视图文件存在的路径
$file=$dir.'/views/'.$view;
#判断渲染视图是否存在
if(file_exists($file)){
#要想使用 composer 下载的包,要先引入此文件。
include $dir."/vendor/autoload.php";
#让 twig 加载视图文件目录
$loader = new \Twig_Loader_Filesystem($dir.'/views');
$twig = new \Twig_Environment($loader);
#加载渲染的页面
$template = $twig->load($view);
#输出模板值
echo $template->render($this->assign?$this->assign:'');
}
}
}
//文件结束。
IndexController.php 内容:
<?php
include 'Controller.php';
class IndexController extends Controller{
public function index(){
$title="我是标题";
$this->assign("title",$title);
$this->display("views.html");
}
}
(new IndexController())->index();
//文件结束。
然后我们在 views 目录创建 views.html
views.html 内容:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
{{title}}
</body>
</html>
结束。
twig 模板引擎使渲染视图更加优雅的更多相关文章
- SSTI(以Twig模板引擎为例)
一.模板注入与常见Web注入 就注入类型的漏洞来说,常见 Web 注入有:SQL 注入,XSS 注入,XPATH 注入,XML 注入,代码注入,命令注入等等.注入漏洞的实质是服务端接受了用户的输入,未 ...
- opencart 引入 TWIG 模板引擎
1.首先将 twig 包放入 system\library 目录. 2.在 system/startup.php 文件最后添加引入语句. require_once(DIR_SYSTEM . 'lib ...
- node(基础)_node.js中的http服务以及模板引擎的渲染
一.前言 本节的内容主要涉及: 1.node.js中http服务 2.node.js中fs服务 3.node.js中模板引擎的渲染 4.利用上面几点模拟apache服务器 二.知识 1.node.js ...
- 构建自己的PHP框架(Twig模板引擎)
完整项目地址:https://github.com/Evai/Aier Twig 模板引擎 模版引擎 twig 的模板就是普通的文本文件,也不需要特别的扩展名,.html .htm .twig 都可以 ...
- MVVM 和 VUE三要素:响应式、模板引擎、渲染
MVVM 和 VUE三要素:响应式.模板引擎.渲染:https://blog.csdn.net/weixin_37644989/article/details/94409430
- 原生twig模板引擎详解(安装使用)
最近在学习SSTI(服务器模板注入),所以在此总结一下 0x00 Twig的介绍 什么是Twig? Twig是一款灵活.快速.安全的PHP模板引擎. Twig的特点? 快速:Twig将模板编译为纯粹的 ...
- doT js 模板引擎【初探】要优雅不要污
js中拼接html,总是感觉不够优雅,本着要优雅不要污,决定尝试js模板引擎. JavaScript 模板引擎 JavaScript 模板引擎作为数据与界面分离工作中最重要一环,越来越受开发者关注. ...
- 用模板引擎Art-Template渲染空格或换行符引发的一场“命案”
一.绪论 说实话,真的不知道如何给这篇博客命名,因为我觉得应该有一些小伙伴遇到跟我同样的问题正在抓耳挠腮中. 二.导火索 最近在做一个移动H5翻页的功能,类似于MAKA模板那种.假设大致框架如下 ...
- yii2 使用twig 模板引擎
yii2 默认使用PHP 和html 混合的方式来写视图层,但我个人还是喜欢纯模板语言的方式.而且已经非常习惯使用twig的语法,最近想使用yii2进行开发,所以还是选择使用twig视图引擎. git ...
随机推荐
- 简单的floyd——初学
前言: (摘自https://www.cnblogs.com/aininot260/p/9388103.html): 在最短路问题中,如果我们面对的是稠密图(十分稠密的那种,比如说全连接图),计算多 ...
- COGS 2479 奇怪的姿势卡♂过去 (bitset+折半)
思路: 此题显然是CDQ套CDQ套树套树 (然而我懒) 想用一种奇怪的姿势卡过去 就出现了以下解法 5w*5w/8的bitset hiahiahia 但是空间会爆怎么办啊- 折半~ 变成5w*2.5w ...
- C++线程安全退出
HANDLE m_EvtThreadExit[MaxVisionNum]; //定义 方法一 ;i<MaxVisionNum;i++) m_EvtThreadExit[index] = Crea ...
- Swift学习笔记(9):枚举
目录: 基本语法 关联值 原始值 枚举为一组相关的值定义了一个共同的类型. ・可以给枚举成员指定原始值类型:字符串,字符,整型值或浮点数等 ・枚举成员可以指定任意类型的关联值存储到枚举成员中 ・枚举可 ...
- POJ 1273 Drainage Ditches【最大流】
题意:给出起点是一个池塘,M条沟渠,给出这M条沟渠的最大流量,再给出终点是一条河流,问从起点通过沟渠最多能够排多少水到河流里面去 看的紫书的最大流,还不是很理解,照着敲了一遍 #include< ...
- swift语言点评十五-$0
import UIKitimport XCPlayground class ViewController: UIViewController { func action() { print(" ...
- 3ds Max怎么制作亮木材质的球体
3DSMax怎么制作亮木材质的球体?3DSMax中想要设计一款亮木材质的球体,该怎么设置呢?下面我们就来看看详细的教程,需要的朋友可以参考下! 1.运行软件,选择材质编辑器图标: 3.双击拖拽出的材质 ...
- CTSC2012 熟悉的文章 广义后缀自动机_单调队列
没啥难的,主要是单调队列忘了咋求了QAQ... Code: #include <cstdio> #include <algorithm> #include <cstrin ...
- (一)React再学习
新公司的技术栈是React,虽然之前对react大概过了一遍,但是自己没有实际落地过项目 再学习一遍react: 一.react全家桶 ·create-react-app ·组件化思维 ·JSX ·开 ...
- pandas 5 导入导出 读取保存 I/O API
官网The pandas I/O API pickle格式是python自带的 from __future__ import print_function import pandas as pd da ...