- 1、本文档共82页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Smarty讲解
Smarty模板引擎
一.模板引擎初探
1.什么是模板引擎
从中级项目出发,看一下。
好的地方, 对于我们php开发人员来讲,比较简单。
不好的地方,如果有分工开发的场景,就没有办法做到明确的分工。
2.为什么需要模板引擎
典型的开发场景
只要能把php和html分开的技术,都可以称之为模板技术。
注意mvc和模板技术的区别
MVC:它是针对整个项目而言的。
模板技术:仅针对视图层而言的。
3.常见的模板引擎有哪些?
Smarty(重点学习的)
Template
FXL tempate
Dwoo
Smarty是功能强大最强大,使用最多的。
Php开发人员必备的。
二.Smarty快速入门
1.Smarty介绍
smarty是什么?
Smarty是一个PHP的模板引擎,提供让程序逻辑与页面显示(HTML/CSS)代码分离的功能。 也就是PHP代码是程序逻辑,与页面显示分开。
smarty特点
速度:使用smarty可以获得最大速度的提高(相对于其它模板引擎技术)。
编译型:在下一次访问模板时直接访问编译文件,而不再进行模板重新编译。
缓存技术:可以将用户最终看到的HTML文件缓存成一个静态的HTML页。
插件技术:smarty可以自定义插件。插件实际就是一些自定义的函数。
强大的表现逻辑:模板中可以使用if/elseif/else/endif、foreach等。
2.获取
Smarty官网:/download
smarty 2.x 兼容PHP 4 的写法
smarty 3.x 基于PHP 5,完全面向对象
3.安装
安装,其实就是解压。
目录结构说明:
Smarty目录结构
4.使用
可以参考手册/demo。
(1).创建相应的文件夹
目前,只需要创建两个目录即可,如下:
(2).编写php文件
(3).编写模板文件
在templates目录下创建一个index.html文件,并编写代码如下:
访问index.php,结果如下:
整个过程比较简单,一是在php文件中用到,二是模板文件中用到。
查看编译文件,如下:
它实际上是一个php和html混编的一个php文件,只不过它是由smarty模板引擎生成的。
三.Smarty基本语法
首先,站在前端开发人员的角度使用smarty。包括定界符、注释、变量和函数(内置函数、变量修饰器和函数插件)。
1.定界符
和html标签类似,p/p
在smarty中,默认的定界符是{},
注意:
任何在定界符之外的内容,都是静态的,是不会被解析的(包括php代码)
{ 和 $ 中间不能有任何空格,否则将不会解析。(右边则是可以的)
如果在页面中有css和js,会怎么样呢?
默认的定界符是可以修改的
如何解决{的冲突
a. 所有以{ 开头的地方,加空一格
b. 将css和js以外部的方式引入
c. 使用内置函数 literal
d. 更改定界符
修改之后,应该这么使用:
实际上,修改定界符比较麻烦,最好的做法,使用默认的,将css和js以外部的方式来引入,如果在页面中需要单独书写css和js,用literal标签包含即可。
2.注释
格式:左定界符* 内容 *右定界符 如 {* 内容 *}
变量---比较重要
在模板中可以使用的变量有哪些?通常有三种来源:
在php中通过assign方法分配过来的。(90%以上)
保留变量
配置变量
(1).通过assign分配过来的变量
直接使用assign方法分配即可,写法如下:
$smarty-assign(名,值);
重点是,分配的变量有哪些表现形式?
回顾:php中,有哪些数据类型?422阵型
4种标量类型,整型、浮点型、字符串、布尔
2种复合类型,数组和对象
2种特殊类型,资源和NULL
标量就是单个值的意思,一个变量只能表示一个值。
资源类型和NULL根本就不需要。
对象是可以使用的,但是一般不建议分配。
结论:就是标量类型和数组。5种,实际上就是两种,标量和数组。
标量比较简单,直接输出即可
结果如下:
结果如下:
注意,布尔类型,在echo的时候,echo后面的参数一定是字符串,如果不是,会自动隐式转换。True转成1,false转成空。
数组是重点
然后在模板页面中,输出
结果如下:
实际上,不管是关联数组还是索引数组,其实处理方式是一样的。都可以使用[]和.的方式来访问。
[思考]:关联数组和索引数组有何区别?
实际上没有什么区别。
索引数组只不过是关联数组的一种特例,特殊之处就在于下标是连续的数字。
对象也是可以分配的,但一
您可能关注的文档
- sheppt英文歌曲讲解.ppt
- SGM检具设计及制造讲解.ppt
- Shopping购物讲解.ppt
- SHT21程序讲解.doc
- SIB消息内容介绍讲解.ppt
- 安全变革管理层培训教材解读.ppt
- 安全员上岗电气培训解读.ppt
- 安全员基础知识复习资料2014()答案版解读.doc
- simulink仿真基础讲解.ppt
- simulink仿真技术讲解.ppt
- 上海海洋大学《海洋环境分析技术》课件-21化学发光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-20分子荧光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-22色谱分离过程.pdf
- 上海海洋大学《海洋环境分析技术》课件-25气相色谱仪与固定液.pdf
- 上海海洋大学《海洋环境分析技术》课件-24色谱定性定量方法.pdf
- 上海海洋大学《海洋环境分析技术》课件-26气相色谱检测器.pdf
- 上海海洋大学《海洋环境分析技术》课件-29液相色谱固定相与流动相.pdf
- 上海海洋大学《海洋环境分析技术》课件-27气相色谱分离条件的选择.pdf
- 上海海洋大学《海洋环境分析技术》课件-28液相色谱仪器与类型.pdf
- 上海海洋大学《海洋环境分析技术》课件-3 原子光谱和分析光谱.pdf
文档评论(0)