博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Just for fun——PHP框架之简单的模板引擎
阅读量:6004 次
发布时间:2019-06-20

本文共 1089 字,大约阅读时间需要 3 分钟。

原理

使用模板引擎的好处是数据和视图分离。一个简单的PHP模板引擎原理是

  1. extract数组($data),使key对应的变量可以在此作用域起效

  2. 打开输出控制缓冲(ob_start)

  3. include模板文件,include遇到html的内容会输出,但是因为打开了缓冲,内容输出到了缓冲中

  4. ob_get_contents()读取缓冲中内容,然后关闭缓冲ob_end_clean()

实现

封装一个Template

templatePath = $path; } /** * 设置模板变量 * @param $key string | array * @param $value */ public function assign($key, $value) { if(is_array($key)) { $this->data = array_merge($this->data, $key); } elseif(is_string($key)) { $this->data[$key] = $value; } } /** * 渲染模板 * @param $template * @return string */ public function display($template) { extract($this->data); ob_start(); include ($this->templatePath . $template); $res = ob_get_contents(); ob_end_clean(); return $res; }}

测试

test.php

setTemplatePath(__DIR__ . '/template/'); $template->assign('name', 'salamander'); $res = $template->display('index.html'); echo $res;

template目录下index.html文件

    
模板测试

clipboard.png

clipboard.png

Tip

为什么display要返回一个字符串呢?原因是为了更好的控制,嵌入到控制器类中。

对于循环语句怎么办呢?这个的话,请看

转载地址:http://uspmx.baihongyu.com/

你可能感兴趣的文章
java基本数据类型及运算符小结
查看>>
第一周博客作业
查看>>
Python strip lstrip rstrip使用方法
查看>>
Linux开发工具_1_gcc入门(上)
查看>>
在这里安家了
查看>>
ERP项目更应授人以渔
查看>>
我的友情链接
查看>>
thinkpython2
查看>>
JDK、JRE和JVM的关系
查看>>
String、StringBuffer和StringBuilder的区别
查看>>
【原创】ObjectARX中的代理对象
查看>>
.net中验证码的几种常用方法
查看>>
解决OracleDBConsoleorcl不能启动
查看>>
.net DLL程序集中打包另一个DLL
查看>>
我的友情链接
查看>>
Drupal第三方模块汇集(一)
查看>>
我的友情链接
查看>>
使用spring的自身的listener进行web的配置
查看>>
linux学习之“VI”与“VIM”
查看>>
linux下无线网卡驱动安装
查看>>