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-11-30
Smarty教程 在线教程
热门教程
1 Smarty教程 Smarty是一个php模板引擎。它分开了逻辑程序和外在的内容,提供了一种易于管理的方法。汇集Smarty编程教程、参考手册和实例代码等,帮助你快速入门学习Smarty和提高Smarty技术和编程水平。
2 Smarty display方法 display 显示 void display (string template [, string cache_id [, string compile_id]]) 显示模板,需要指定一个合法的模板资源的类型和路径。你还可以通过 第二个可选参数指定一个缓存号,相关的信息
3 Smarty调试控制台 调试控制台 SMARTY里面包括有一个调式控制台。它可以告诉你模板里面包含的所有内容,同时也可以为当前使用模板中的变量和配置文件变量赋值。一个叫 debug.tpl 的模板包含了很多控制
4 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
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 标签输出一个变量或者调用某种函数. 在定界符内 函数(用{包住)和其属性(用界符包住)将被处理和输出.例如: {funcname attr1=val attr2=val}. 例 3-2.函数语法 {config_load
7 Smarty fetch方法 fetch 取得输出的内容 string fetch (string template [, string cache_id [, string compile_id]]) 返回一个模板输出的内容(HTML代码),而不是直接显示出来,需要指定一个合法的模 板资源的类型和路径。
8 Smarty assign用法 assign Attribute Name Type Required Default Description var string Yes n/a The name of the variable being assigned value string Yes n/a The value being assigned 属性 类型 是否必须 缺省值 描述 var string Yes n/a 被赋值的变量
9 Smarty include_php include_php Attribute Name Type Required Default Description file string Yes n/a The name of the php file to include once boolean No true whether or not to include the php file more than once if included multiple times assign string No n/a
10 Smarty foreach,foreachelse foreach,foreachelse Table of Contents目录 iteration 用于显示当前循环的执行次数[待考] first : 当前 foreach 循环第一次执行时 first 被设置成 true. last : 当前 foreach 循环执行到最后一遍时 last 被设置
  • Copyright © 2021 猿狮院, All rights reserved.