iwind的专栏

iwind - 匆匆人生中,你做了几件令自己骄傲的事呢?

用户操作
[即时聊天] [发私信] [加为好友]
章节ID:ccterran
23071次访问,排名5134好友1人,关注者1
ccterran的文章
原创 23 篇
翻译 0 篇
转载 0 篇
评论 8 篇
iwind的公告
本blog皆为iwind原创或翻译,转载时最好写上出处。

我的日记

我的其它常用名:ccterran,month,coldwind

最近评论
fftaks:Wow gold
vanxining:很不错。
mark:语言通俗简明。good!
study:谢谢你。我在你这里学了好多东西。解决了我很多疑问!
谢谢!
寻梦人:非常不错.正愁资料呢,谢谢
文章分类
收藏
    相册
    PHP人
    IWIND(RSS)
    PHP艺术
    个人日记
    PEAR中文
    我的日记(RSS)
    技术资源
    ADODB
    PEAR
    PHP.NET
    SF.NET
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 PHPLIB Template入门系列 - 1 简介收藏

    新一篇: PHPLIB Template入门系列 - 2 开始你的第一个应用 | 旧一篇: 图片的分割与组合

    好久不去技术论坛,最近逛了一下,才发现越来越多的人对模板感兴趣了,当然其中很多都是关于PHPLIB Template类的使用的.诚然,网络上已经很多相关的话题了,但据我观察,中文的资料实在不多,且大多是讲的太笼统,没能全面阐述它的用法,即使看了还是一知半解.所以本文就期望通过对它的比较全面的介绍,让你能达到入门的水平.

    何谓"模板"技术

    我们的最初观察是将界面和实现代码分离开来,这样做的目的是将美工和程序员的工作分离开来.PHP的一个优点是可以把PHP代码嵌入HTML里面,这样你就不必再把大段HTML代码用函数print()输出来.
    print("<table border=0 cellspacing=1 cellpadding=2 width=100%>");
    print(
    "<tr>");
    print(
    "<td>");
    print(
    "我爱你 kiki");
    print(
    "</td>");
    print(
    "</tr>");
    print(
    "</table>");
    这段代码对界面维护来说是相当困难的,除非程序员做这样事情且他对样式表,HTML非常精通.取而代之的我们用
    <table border=0 cellspacing=1 cellpadding=2 width=100%>
        <tr>
            <td>
                <?php print("我爱你 kiki ");?>
            </td> 
        </tr>
    </table>

    这样,做美工设计的只要不碰PHP代码,就可以很方便地改变这个表格的样式,如果使用dreamweaver等所见即所的工具,将会更加方便.

    现在的一个问题是,如果美工正在修改的话,程序员仍需要把这个文件取回来,才能改变里面的PHP代码,修改完后再交给美工,这样循环往复,往往要花费大量的时间和精力,如果你所在公司是采取这种模式的话,恐怕老板为了节省时间,会把很多界面设计也交给程序员来做,毕竟他不会让你们任何一个闲座着等待.作为程序员的你此时可能会梦想:如果程序员只要负责写程序代码,不理会令人烦躁的界面,那就太好了.

    或许Fast Template诞生那刻起(我不敢确定它是最早的PHP模板处理类,但用起来确实很方便),你的梦想就几近实现.策划们把东西交给你,当然里面的元素都写好了的,形如以下tpl.html
    <table border=0 cellspacing=1 cellpadding=2 width=100%>
        <tr>
            <td>
                我爱你{MY_LOVE}
            </td>
        </tr>
    </table>

    你只需要在程序里给这些元素(MY_LOVE)赋值就行了tpl.php
        $tpl->assign("MY_LOVE", "kiki");
    你基本上不用管这些元素的样式(比如字体,宽度,高度等),所在位置,甚至这些元素将来可能不再使用了.与此同时,美工那边把元素放进一个HTML页面里(这个页面就是我们所说的"模板"),他也不用担心会不小心把你的程序给搞坏了.然后做完后交给一个专门负责程序和美工结合的人(当然在国内也是程序员做这样事情),他很可能只需要很小的几个修改就可以把两者结合的很好.这样对你,对美工,都大大提高了工作效率,老板自然也会很高兴啦.

    所以我这里所说的"模板"技术,就是可以将程序和美工分离的技术,注意不是逻辑抽象层与表现层的分离.一来,那样将会让人不知所云,因为"逻辑抽象"这四个字就已经太抽象了,且表现层并只是美工所做的模板.所以,很多人试图把Fast Template,PHPLIB Template两个与Smarty相比较,在我看来,这是明显不对的.

    PHPLIB Template类也是一个用PHP代码处理模板的一个类.也是本文要将要阐述的一个模板类.同上面讲的一样,它能把模板中的"元素"替换为你为它设定的值",且处理的很很好,也容易扩展,由于使用了preg_函数,所以速度也比较快.很多人都会提出一个意见:使用模板会让你的代码运行的更慢,确实是这样的,如果你使用嵌入式写法,会快一些,如果把PHP连同HTML全部写入PHP里(用 print("<html标签>"); ),可能会更快.但如果综合考虑整个项目的开发效率,以及后期维护性的话,这些代价是可以承受的,而且慢也不会慢哪里去,真正的问题所在可能是你的模板实在是太大了.当然,你也可以改进这个模板类,让它运行的更快.

    提起PHPLIB Template,很多人自然会联想起Fast Template来,我也不例外,因为两者很多地方都很相近.对此,很多人都做了比较,在这里我就不再详述了,或许王晨的这篇文章值得一看: 在PHP世界中选择最合适的模板

    获取

    可以从这里下载 http://www.sanisoft.com/phplib/download.php PHPLIB,然后从压缩包中php目录下取出template.inc,就可以供我们使用了.

    文档

    英文文档 http://www.sanisoft.com/phplib/manual/template.php
    我翻译的中文文档(仅做参考) http://www.4kiki.net/php_lib_template/
    还有网上的很多资源,可以通过google搜索得到.

    从类里面注释可以知道,最新版本是2002/07/11 22:29:51的1.12版,所以,你或许需要修改一些东西,在你懂的前提下.我们还可以下载它的PEAR集成版本(http://pear.php.net/package/HTML_Template_PHPLIB/download), 不过你的PHP版本需要在4.3.0以上.

    发表于 @ 2004年10月31日 14:23:00|评论(loading...)|编辑

    新一篇: PHPLIB Template入门系列 - 2 开始你的第一个应用 | 旧一篇: 图片的分割与组合

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © iwind