zoukankan      html  css  js  c++  java
  • EcShop之路-Smarty

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
    内部邀请码:C8E245J (不写邀请码,没有现金送)
    国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为中国PE第一股,市值超1000亿元。 

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

    来源:http://www.cnblogs.com/dequan-lee/archive/2009/08/06/1540621.html

    目前市面上有很多针对PHPMVC模板,但Smarty无疑是在功能和速度上处于绝对领先地位的。MVC(Model-View-Controller)模型-视图-控制器,相信大家对这个概念不陌生,老李也就不详细解释了。EcShop肯定是要采用MVC架构的,不说大家也明白,网店市场的需求是千变万化的,客户对页面的外观组织形式和页面逻辑的要求可谓是“一千个人心中有一千个哈姆雷特”。为了应对这种变化,EcShop必须采用MVC架构。这里顺便提一下,老李不是所谓的模式派或架构派,不会满嘴冒“观察者模式”、“职责链模式”、“依赖倒置”、“接口隔离”、“MVC”、“MVP”等。老李始终觉得根据项目的需要和变化点来设计软件。如果有需要,即便设计出紧耦合的软件也是很Prefect

             好了,继续说Smarty。先说说Smarty的特点:

    1. 速度:相对于其它PHP模板而言,采用Smarty模板编写的程序可以获得最快的速度。注意,是相对于其它PHP模板而言。
    2. 内建缓存支持(大量缓存处理可能不是很完美)
    3. 可以自定义插件。
    4. 可以自行设置模板定界符,如{}{{}}等。
    5. 模板中可以使用控制语句(后面会详细说)
    6. 仅对修改过的模板文件进行重新编译。

             PHP没有内置的Smarty模板类,需要单独下载和配置,大家可以去http://smarty.php.net 上看看。下载后找到libs文件夹,并把它整体复制到将要使用Smarty的应用程序的根目录下(记得改名字哦)libs文件夹包含四个核心文件smarty.class.phpsmarty_Compiler.phpconfig_File.class.phpdebug.tpl,大家有兴趣可以打开看看。不过令老李很奇怪的是,在EcShop中根本发现不到任何Smarty文件的踪迹?原来,EcShop开发团队把Smarty改动一番然后重命名为cls_template.php文件了,呵呵,向EcShop致敬!当然了EcShop肯定是自定义一部分用法和规则,但下面还是抛开EcShop说说通用规则。

             先说Smarty变量,变量来自三个部分:

    1. 来自PHP页面中的变量,即assign()方法传过来的。在EcShop中经常可以看见这种使用。
    2. 保留变量,相当于PHP中的预定义变量(见EcShop之路PHP篇)。在Smarty模板中使用保留变量时,无需使用assign方法传值,直接调用变量名即可。getpostserversession等同于$_GET$_POST$_SERVER$_SESSION
    3. 修饰变量,有的时候不仅仅需要取得变量的值,还需要对变量进行处理,如转化成大写。

             Smarty也有很多内置函数,下面列举几个EcShop中常用的函数:

    1. includeinsert:用来载入其它模板。但insert载入的内容不会被缓存,每次开启页面都会重新执行。
    2. Config_load:用来加载配置文件。
    3. foreach:略,注意用法。
    4. section:用于比较复杂数组的循环访问。
    5. fetch:返回模板的输出内容,但不直接显示出来。

              Smarty就先说到这吧,相信大家多看看代码也就明白了!

  • 相关阅读:
    Linux 共享库
    使用Visual Studio(VS)开发Qt程序代码提示功能的实现(转)
    ZOJ 3469 Food Delivery(区间DP)
    POJ 2955 Brackets (区间DP)
    HDU 3555 Bomb(数位DP)
    HDU 2089 不要62(数位DP)
    UESTC 1307 windy数(数位DP)
    HDU 4352 XHXJ's LIS(数位DP)
    POJ 3252 Round Numbers(数位DP)
    HDU 2476 String painter (区间DP)
  • 原文地址:https://www.cnblogs.com/AloneSword/p/3513645.html
Copyright © 2011-2022 走看看