推56论坛

 找回密码
 立即注册(限中文)

QQ登录

只需一步,快速开始

    查看: 812|回复: 0

    [ECshop教程] EcShop之路-Smarty

    [复制链接]
    发表于 2019-8-22 11:05:57 | 显示全部楼层 |阅读模式
    来源:http://www.cnblogs.com/dequan-lee/archive/2009/08/06/1540621.html
    目前市面上有很多针对PHP的MVC模板,但Smarty无疑是在功能和速度上处于绝对领先地位的。MVC(Model-View-Controller)模型-视图-控制器,相信大家对这个概念不陌生,老李也就不详细解释了。EcShop肯定是要采用MVC架构的,不说大家也明白,网店市场的需求是千变万化的,客户对页面的外观组织形式和页面逻辑的要求可谓是“一千个人心中有一千个哈姆雷特”。为了应对这种变化,EcShop必须采用MVC架构。这里顺便提一下,老李不是所谓的模式派或架构派,不会满嘴冒“观察者模式”、“职责链模式”、“依赖倒置”、“接口隔离”、“MVC”、“MVP”等。老李始终觉得根据项目的需要和变化点来设计软件。如果有需要,即便设计出紧耦合的软件也是很Prefect。
             好了,继续说Smarty。先说说Smarty的特点:
    • 速度:相对于其它PHP模板而言,采用Smarty模板编写的程序可以获得最快的速度。注意,是相对于其它PHP模板而言。
    • 内建缓存支持(大量缓存处理可能不是很完美)。
    • 可以自定义插件。
    • 可以自行设置模板定界符,如{}、{{}}等。
    • 模板中可以使用控制语句(后面会详细说)。
    • 仅对修改过的模板文件进行重新编译。
             PHP没有内置的Smarty模板类,需要单独下载和配置,大家可以去http://smarty.php.net 上看看。下载后找到libs文件夹,并把它整体复制到将要使用Smarty的应用程序的根目录下(记得改名字哦)。libs文件夹包含四个核心文件smarty.class.php、smarty_Compiler.php、config_File.class.php和debug.tpl,大家有兴趣可以打开看看。不过令老李很奇怪的是,在EcShop中根本发现不到任何Smarty文件的踪迹?原来,EcShop开发团队把Smarty改动一番然后重命名为cls_template.php文件了,呵呵,向EcShop致敬!当然了EcShop肯定是自定义一部分用法和规则,但下面还是抛开EcShop说说通用规则。
             先说Smarty变量,变量来自三个部分:
    • 来自PHP页面中的变量,即assign()方法传过来的。在EcShop中经常可以看见这种使用。
    • 保留变量,相当于PHP中的预定义变量(见EcShop之路PHP篇)。在Smarty模板中使用保留变量时,无需使用assign方法传值,直接调用变量名即可。get、post、server、session等同于$_GET、$_POST、$_SERVER、$_SESSION。
    • 修饰变量,有的时候不仅仅需要取得变量的值,还需要对变量进行处理,如转化成大写。
             Smarty也有很多内置函数,下面列举几个EcShop中常用的函数:
    • include和insert:用来载入其它模板。但insert载入的内容不会被缓存,每次开启页面都会重新执行。
    • Config_load:用来加载配置文件。
    • foreach:略,注意用法。
    • section:用于比较复杂数组的循环访问。
    • fetch:返回模板的输出内容,但不直接显示出来。
              Smarty就先说到这吧,相信大家多看看代码也就明白了!

    本版积分规则

    关闭

    推56站长论坛推荐上一条 /1 下一条

    站长QQ
    在线咨询
    咨询热线
    QQ:405327411

    QQ|免责声明|小黑屋|站长论坛 ( 豫ICP备11018337号-5 )

    推56论坛(www.tui56.com)站长论坛 SEO论坛 网络营销论坛 新手站长论坛 网络推广论坛 站长社区 站长网

    Powered by Discuz! X3.4 Licensed

    ©2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表