侯体宗的博客
  • 首页
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

TMDPHP 模板引擎使用教程

php  /  管理员 发布于 7年前   179

在PHP界谈模板引擎,必不可免的要拿Smarty开刀,
这个无比傻帽的却又带有一点点官方色彩的模板引擎,
如果没有我这样人富有正义感又富有创新精神的热血青年站出来,
不知道它还要继续毒害多少那些处于花季而又对PHP充满美丽幻想的少年。
1.语法
你真的认为美工学的了 {foreach key=key item=item from=$contact} 这样的语法
却学不了 $item) { ?> 吗?
而 {if $name eq "Fred" or $name eq "Wilma"}
又比 优秀到哪里去?
首先我对美工会学Smarty语法始终保持怀疑态度,至少我工作这么多年还没遇到过一个会Smarty语法的,
而就算美工愿意学,你又为何不教他正宗的PHP语法,却要教他一门连你自己搞不清楚的“Smarty语言”
2.可视化
当页面从美工交接到你手上,然后你给那些完美的网页,套上那恶心的Smarty代码,
然后在Dreamweaver里,你是否认真的看过那些页面已经变得何等的丑陋,
图片还看得见吗?CSS还在吗?更不用说include了。而要修改的时候呢?你还能一眼认出来吗?
这些都解决不了,那些所谓的模板引擎又怎么配得上“强大”二字?
3....
多的我就不说了,这里只是拿Smarty举个例子,应该不难发现,其它模板引擎也大同小异,
都忙着发明自己的模板语言,而真正需要解决的问题则避而不谈,
现在你是否明白了,所谓的模板引擎,所谓的强大,都TMD骗子,
在夜深人静的夜里,我曾无数次的醒来,感觉自己的担子又重了一些,只因为不能够将这个残忍的事实告诉你。
于是我痛心疾首,痛下狠心,百忙之中抽空写了这个命名为tmd_tpl的真正的模板引擎,
虽然也许现在还不算强大,但强大是未来的一种必然。
・tmd_tpl使用入门教程:
接下来我们来学习tmd_tpl的使用方法,流程上和其它模板引擎没什么太大的差别。
一、初始化模板引擎
复制代码 代码如下:


// 将 tmd_tpl 包含进来
require '../tmdphp/tmd_tpl.php'; // 请改为你的tmd_tpl所在路径
// 实例化 tmd_tpl
$TPL = new tmd_tpl();
// 下面是配置 tmd_tpl
// 指定模板目录,以斜杠结尾
$TPL->tpl_dir = './tpl/';
// 指定模板文件扩展名
// 建议以php为后缀,因为这样在Dreamweaver中php代码有高亮效果。
// 另外在Chrome浏览器中可以直接打开进行预览,用IE打开会提示下载。
$TPL->tpl_ext = '.tpl.php';
// 指定编译后模板的保存目录
$TPL->cache_dir = './tpl_c/';
// 设置编译后文件的有效期,单位:秒
$TPL->cache_time = 0; // 0是每次都重新编译,-1是永不过期,
// 自定义正则替换
$TPL->my_rep = array(
'~(\.\./)+static/~' => '/proj-1/static/',
// ↑如果项目的访问地址是 http://localhost/proj-1/
// 自定义替换这里有很多技巧,入门期先不写出来
);

二、赋值并显示页面
复制代码 代码如下:

// 普通赋值
$TPL->assign('site_name', '王道中强流');
$TPL->assign('site_intro', '我是一个PHP程序员,tmd_tpl的作者。');
// 支持数组
$blog = array(
'title' => '去TMD的Smarty',
'content' => '在讲解tmd_tpl的使用方法之前,我要先讲讲为什么要重新发明这个轮子。
那我们要从这世界上所谓的PHP模板引擎都为大家做了哪些贡献说起。
在PHP界谈模板引擎,必不可免的要拿Smarty开刀,
这个无比傻帽的却又带有一点点官方色彩的模板引擎,
如果没有我这样人富有正义感又富有创新精神的热血青年站出来,
不知道它还要继续毒害多少那些处于花季而又对PHP充满美丽幻想的少年。',
// 目前只支持到二维数组,一般来说二维已经足够了
'info' => array(
'addtime' => '2012.3.11',
'author' => '王忠强',
'weibo' => 'http://t.qq.com/teeband',
),
);
$TPL->assign('blog', $blog);
// 模板中将演示循环输出这个数组
$links = array(
'AIDI' => '',
'素材天下' => 'http://sc..net.cn/',
'百度' => 'http://www.baidu.com/',
'网址导航' => 'http://www.hao123.com',
'伤不起' => 'http://www.3buqi.com/',
'嘿!' => 'http://www.hei123.net/',
);
$TPL->assign('links', $links);
$TPL->display('index');

三、模板静态文件的目录结构


四、模板篇

复制代码 代码如下:

// 模板中调用变量

{$site_name}


{$site_intro}



// 调用数组

{$blog.title}


// 二维数组
{$blog.info.author}
// 这些模板引擎的基本功能,在tmd_tpl中也是一样的。
// 但是循环和判断,tmd_tpl观点是直接用php代码。没必要创造个模板语言来实现。
foreach ($links as $name => $url) {
?>
  • {$name}

  • }
    ?>
    // 函数方面,对目前的tmd_tpl来说,是一个弱项。
    // 还不支持 {$blog.content|nl2br} 这样子的格式。
    {:nl2br( $blog['content'] )} // 只能这样
    // 或者这样
    // 都将自动转换为

    // 如果调用的是一些无返回值的函数
    {~print_r( $blog )}

    tmd_tpl真正的创新之处在于,路径的转换。
    你可以在Dreamweaver中直接插入图片,引入CSS,调用JS,还有包含另一个页面。
    复制代码 代码如下:

    // 插入图片

    // 引入CSS

    // 调用JS

    // 包含一个页面


    ・使用tmd_tpl模板引擎之后

    查看通过http访问效果 >点这里<

    在Dreamweaver中(这样子前端人员才有办法嘛~)

     

    在Chrome中(只有include的页面不能显示)

     

    ・不用tmd_tpl的话,我们来看看Discuz!和DedeCMS的模板。

    Discuz!

     

    DedeCms

     

    现在你知道那些所谓强大的模板引擎有多可笑了吧?

    还等什么?改变历史的时刻到了,点击你手中的鼠标,下载第二代PHP模板引擎tmd_tpl!

    您可能感兴趣的文章:

    • ThinkPHP使用smarty模板引擎的方法
    • 需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
    • PHP模板引擎Smarty的缓存使用总结
    • PHP原生模板引擎 最简单的模板引擎
    • php模板引擎技术简单实现
    • PHP中MVC模式的模板引擎开发经验分享
    • 在Yii框架中使用PHP模板引擎Twig的例子
    • 简单的自定义php模板引擎
    • PHP模板引擎Smarty中变量的使用方法示例
    • Pain 全世界最小最简单的PHP模板引擎 (普通版)
    • php tpl模板引擎定义与使用示例
    • TMDPHP 国产优秀PHP模板引擎


  • 上一条:
    批量去除PHP文件中bom的PHP代码
    下一条:
    Notice: Trying to get property of non-object problem(PHP)解决办法
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(95个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客