Smarty模板引擎,使用smarty好处就是可以实现页面缓存,从而加快了初始化之后的页面访问速度。

某种程度上,smarty模板确保了template页面的代码整洁,避免了HTML标记与PHP的混合。

在维护业务逻辑代码时,我们可以只修改业务逻辑代码的脚本文件;

在产生页面修改和页面重构时,我们可以只修改页面文件即可。

PHP只负责业务逻辑和数据

Smarty模板则将数据显示到页面,因为HTML标记是没有任何逻辑功能的。

Smarty模板使用建议:

1. 不要一个个变量的地assign到smarty模板中去,而应该将数据根据相关性组织、分类好,以一个一维的关联数组assign过去。

在tpl文件中,通过使用smarty模板的数组访问方式获取到数据并展示。

例子: 一个在线的web酒店订房网站,它有一个所有页面都有的订房导航栏,如下图:

那么该导航上面的数据:check in date , check out date , adults , children , nights  , extrabed , package

这七个数据应该都是与订房相关的,可以将它们都组合到一个数组中去,然后再assign过去,在tpl中调用。

而不是将每个数据分散assign过去,这样子就很不方便管理和修改。

然后就是Step1中需要展示的房间信息,房间信息数据可以作为一个独立的数组存放,再assign过去tpl中调用,如下图:

[label][Smarty]Smarty使用心得的更多相关文章

  1. [smarty] smarty 模板文件中进行字符串与变量的拼接

    // smarty 模板引擎 $arr_tribeLabelList["`$tribe_id`_"]

  2. smarty 学习记录

    smarty模版是比较大众化的一个模版,在php开发过程当中被很多开发者视为最友好的模版之一,学习smarty课程对于很多培训机构来说也是列入了培训课程之一,那么很多方面就需要我们学习了一. 安装首先 ...

  3. smarty使用

    smarty-牛刀小试 smarty 初识 官网 http://www.smarty.net/ Smarty is a template engine for PHP(PHP模板引擎) smarty使 ...

  4. MVC架构学习之Smarty学习——病来而蔫

    前两天是五一小长假,而每次假期都想着如何如何刻苦一番,往往是自作多情.. 当然这次是有小病在身,多个借口吧. 一有病就蔫的不行...要锻炼了啊,脚估计也差不多了,游泳试试吧这周. 这次学习Smarty ...

  5. smarty 模板几个例子

    一.assign和display方法的使用以及几个变量调节器 header("content-type:text/html;charset=utf-8");//加载Smarty引擎 ...

  6. 什么是smarty?

    什么是smarty? Smarty是一个使用PHP写出来的模板PHP模板引擎,由PHP.net官方提供 ,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程 序员同美工分离,使用的程序员改 ...

  7. 第八十七天请假 PHP smarty模板配置以及简单的调用方式

    smarty模板的配置文件 <?php define("ROOT",str_replace("\\","/",dirname(__FI ...

  8. ci配置smarty手记

    需要用ci来写一个后台配置smarty,在网络上能够找到一些相关的文章.但是都是比较旧的内容,大部分是smary2.*的配置方法.按照这个配置后会出现一些错误.其实配置看smary官方会比较简单. 基 ...

  9. smarty 快速上手

    smarty半小时快速上手入门教程 投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-10-27我要评论 这篇文章主要介绍了smarty半小时快速上手入门教程,以实例的形 ...

随机推荐

  1. vim自定义配置之UI设置

    vimConfig/plugin/ui-setting.vim let os = substitute(system('uname'), "\n", "", & ...

  2. IntelliJ IDEA、JetBrains PyCharm 注册码-收藏

    IntelliJ IDEA JetBrains PyCharm 注册码 http://idea.lanyus.com/ CNEKJPQZEX-eyJsaWNlbnNlSWQiOiJDTkVLSlBRW ...

  3. 关于 android百度地图 调用 地理位置 经纬度坐标,只调用一次的解决方法,通知栏不总是 搜索 GPS 。。。

    上代码吧... //读取当前坐标 final LocationClient mLocationClient = new LocationClient(mActivity); mLocationClie ...

  4. mysql-6正则表达式

    mysql正则表达式 匹配的两种方式: 1.模糊匹配:like 2.正则表达式 正则表达式语法: 语法 说明 ^ 起始位置.如果设置了RegExp对象的Multiline属性,^也匹配'\n'或'\r ...

  5. sql之强制索引

    1.今天我遇到一个问题,在处理百万级数据查询的时候,一般查询会很慢. 2.第一时间想到是建立联合索引,但是数据库存在多条索引的情况下,索引的执行是全部执行. 3.所以这里要按照特定的索引执行,就必须使 ...

  6. 并发包学习(三)-AbstractQueuedSynchronizer总结

    J.U.C学习的第二篇AQS.AQS在Java并发包中的重要性,毋庸置疑,所以单独拿出来理一理.本文参考总结自<Java并发编程的艺术>第五章第二节队列同步器. 什么是AbstractQu ...

  7. maven install 跳过测试

    mvn命令跳过测试:mvn install -Dmaven.test.skip=true 测试类不会生成.class 文件mvn install -DskipTests 测试类会生成.class文件 ...

  8. A configuration error occurred during startup.Please verify the preference filed with the prompt:Connect to VM

    1. 检查JDK,及Tomcat是否正确可用.2. Tomcat,myeclipse使用的是不是同一个jdk.3. 检查系统的防火墙是不是阻止了MyEclipse主程序访问网络.

  9. 创建标签的两种方法insertAdjacentHTML 和 createElement 创建标签 setAttribute 赋予标签类型 appendChild 插入标签

    1. 建立字符串和insertAdjacentHTML('beforeEnd', ) 2. 通过createElement 创建标签  setAttribute 赋予标签类型 appendChild ...

  10. 开关 toggleClass('hide')

    toggleClass 实现属性的反转 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...