Smarty教程

Smarty是一个php模板引擎。更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法。可以描述为应用程序员和美工扮演了不同的角色,因为在大多数情况下 ,他们不可能是同一个人。例如,你正在创建一个用于浏览新闻的网页,新闻标题,标签栏,作者和内容等都是内容要素,他们并不包含应该怎样去呈现。在Smarty的程序里,这些被忽略了。模板设计者们编辑模板,组合使用html标签和模板标签去格式化这些要素的输出(html表格,背景色,字体大小,样式表,等等)。有一天程序员想要改变文章检索的方式(也就是程序逻辑的改变)。这个改变不影响模板设计者,内容仍将准确的输出到模板。同样的,哪天美工吃多了想要完全重做界面,也不会影响到程序逻辑。因此,程序员可以改变逻辑而不需要重新构建模板,模板设计者可以改变模板而不影响到逻辑。

    现在简短的说一下什么是smarty不做的。smarty不尝试将逻辑完全和模板分开。如果逻辑程序严格的用于页面表现,那么它在模板里不会出现问题。有个建议:让应用程序逻辑远离模板, 页面表现逻辑远离应用程序逻辑。这将在以后使内容更容易管理,程序更容易升级。

   Smarty的特点之一是"模板编译"。意思是Smarty读取模板文件然后用他们创建php脚本。这些脚本创建以后将被执行。因此并没有花费模板文件的语法解析,同时每个模板可以享受到诸如Zend加速器(http://www.zend.com) 或者PHP加速器(http://www.php-accelerator.co.uk)。这样的php编译器高速缓存解决方案。

Smaty的一些特点:

  • 非常非常的快!

  • 用php分析器干这个苦差事是有效的

  • 不需要多余的模板语法解析,仅仅是编译一次

  • 仅对修改过的模板文件进行重新编译

  • 可以编辑'自定义函数'和自定义'变量',因此这种模板语言完全可以扩展

  • 可以自行设置模板定界符,所以你可以使用{}, {{}}, <!--{}-->, 等等

  • 诸如 if/elseif/else/endif 语句可以被传递到php语法解析器,所以 {if ...} 表达式是简单的或者是复合的,随你喜欢啦

  • 如果允许的话,section之间可以无限嵌套

  • 引擎是可以定制的.可以内嵌php代码到你的模板文件中,虽然这可能并不需要(不推荐)

  • 内建缓存支持

  • 独立模板文件

  • 可自定义缓存处理函数

  • 插件体系结构



猿狮妹
2022-07-25
Smarty教程 在线教程
热门教程
1 Smarty教程 Smarty是一个php模板引擎。它分开了逻辑程序和外在的内容,提供了一种易于管理的方法。汇集Smarty编程教程、参考手册和实例代码等,帮助你快速入门学习Smarty和提高Smarty技术和编程水平。
2 Smarty display方法 display 显示 void display (string template [, string cache_id [, string compile_id]]) 显示模板,需要指定一个合法的模板资源的类型和路径。你还可以通过 第二个可选参数指定一个缓存号,相关的信息
3 Smarty section,sectionelse section,sectionelse Table of Contents目录 index index_ prev index_ next iteration first las t row num loop show total Attribute Name Type Required Default Description name string Yes n/a The name of the section loop [$variable_name] Yes n
4 Smarty Caching缓存 Caching [缓存] Table of Contents [内容列表] 缓存被用来保存一个文档的输出从而加速display()或fetch()函数的执行。如果一个函数被加进缓存,那么实际输出的内容将用缓存来代替。缓存可让事
5 Smarty方法 方法 Table of Contents 目录 append 添加 append_by_ref 引用添加 assign 赋值 assign_by_ref 引用赋值 clear_all_assign 清除所有赋值 clear_all_cache 清除所有缓存 clear_assign 清除赋值 clear_cache 清除缓存 clea
6 Smarty调试控制台 调试控制台 SMARTY里面包括有一个调式控制台。它可以告诉你模板里面包含的所有内容,同时也可以为当前使用模板中的变量和配置文件变量赋值。一个叫 debug.tpl 的模板包含了很多控制
7 Smarty foreach,foreachelse foreach,foreachelse Table of Contents目录 iteration 用于显示当前循环的执行次数[待考] first : 当前 foreach 循环第一次执行时 first 被设置成 true. last : 当前 foreach 循环执行到最后一遍时 last 被设置
8 Smarty安装 安装Smarty发行版在/libs/目录里的库文件(就是解压了). 这些php文件你可不能乱画哦.这些文件被所有应用程序共享,也只能在你升级到新版的 smarty 的时候得到更新。 Smarty手册范例 2-1.Smar
9 Smarty扩展设置 扩展设置 这是基本安装的继续,请先阅读那个文件! 一个更灵活一点的配置 Smarty 的方法是扩展类,和初始化你的smarty环境。 为了避免重复地配置路径,我们可以在一个文件里配置这些变量
10 Smarty注释代码 所有的smarty模板标签都被加上了定界符. 默认情况下是 { 和},但它们是可被改变的. 例如,我们假定你在使用默认定界符. 在 smarty 里,所有定界符以外的内容都是静态输出的,或者称之为不可
  • Copyright © 2021 猿狮院, All rights reserved.