什么是smarty?
Smarty是采用php写的一个模版引擎,设计的目的是要将php代码与html代码分离,
使php程序员只专注于php代码的编写,网页美工只专注于网页的美化
没有模版引擎时出现的问题?
html中php代码比重越来越大
页面的数量越来越多
程序设计与美工设计分工不明确
传统的php文件:
1. php代码跟html混编在一起,不利于程序员和美工的分工,程序员和美工不能同时修改一个文件
2.数据的传递同一页面传递,php数据在页面中的显示需要使用php标记
比如:<?php echo $username?>
index.php
采用模版引擎后:
1. php代码与html代码分离开了,php代码放在一个单独的php文件中,html代码放在一个单独的html文件中
2. 数据的传递首现php中的数据先给了模版引擎,然后模版引擎再把接收到的数据给模版文件显示。
3. 模版文件中不再有php代码或者说php标记的出现,模版中显示的数据都是通过模版引擎的标记显示出来的
index.php smarty模版引擎 index.html
目前php的模版引擎很多,为什么要使用smarty模版引擎?
1. 一般的模版引擎,如,phplib 都是在建立模版对象时取得要解析的模版,然后把变量套入后,再通过parse()这个方法来解析模版,最后再将网页输出,总结成一句话,那句是每次执行的时候都要重新解析一遍
2. 对于smarty模版引擎来说,不必在程序里再做parse()这样的操作了,smarty会自动帮我们做,而且已经编译过的网页,如果在没有改动的情况下,smarty会跳过重新编译的动作而直接去执行编译过的网页,以节省编译时间。
Smarty的其它优点:
1. 速度快:相对于其它的模版引擎而言的
2. 编译型:采用smarty编写的程序在运行时会编译成一个非模版技术的php文件。这个文件采用了php与html混合的方式,在下一次访问模版时将web请求直接转换到这个文件中,而无需重新编译(在模版文件没有改动的情况下)
3. 缓存技术:它可以将用户最终看到的html网页缓存成一个静态的html网页。当用户开启缓存时,可以设置缓存时间,在缓存文件没到期之前,将用户的请求直接转换到这个静态的缓存文件,相当于调用了一个静态的html文件。
4. 模版中可以使用流程控制语句。
不适合使用smarty的地方
1. 需要实时更新的内容,例如:股票显示,它需要经常对数据进行更新
2. 小项目。
Smarty模版引擎运作流程。
①在php程序运行时,初始化smarty模版引擎
②smarty模版引擎读取模版文件(.html或tpl文件)
③在读取模版文件的时候,smarty模版引擎会自动判断该模版文件是否需要重新编译。
④如果不需要重新编译,则直接进行模版变量替换。
⑤如果是第一次执行此程序文件或者说模版被改动了,那么就需要重新编译后再进行模版变量替换。
⑥最终执行的是编译后的php文件。
⑦输出结果到浏览器。
Smarty是采用php写的一个模版引擎,设计的目的是要将php代码与html代码分离,
使php程序员只专注于php代码的编写,网页美工只专注于网页的美化
没有模版引擎时出现的问题?
html中php代码比重越来越大
页面的数量越来越多
程序设计与美工设计分工不明确
传统的php文件:
1. php代码跟html混编在一起,不利于程序员和美工的分工,程序员和美工不能同时修改一个文件
2.数据的传递同一页面传递,php数据在页面中的显示需要使用php标记
比如:<?php echo $username?>
index.php
采用模版引擎后:
1. php代码与html代码分离开了,php代码放在一个单独的php文件中,html代码放在一个单独的html文件中
2. 数据的传递首现php中的数据先给了模版引擎,然后模版引擎再把接收到的数据给模版文件显示。
3. 模版文件中不再有php代码或者说php标记的出现,模版中显示的数据都是通过模版引擎的标记显示出来的
index.php smarty模版引擎 index.html
目前php的模版引擎很多,为什么要使用smarty模版引擎?
1. 一般的模版引擎,如,phplib 都是在建立模版对象时取得要解析的模版,然后把变量套入后,再通过parse()这个方法来解析模版,最后再将网页输出,总结成一句话,那句是每次执行的时候都要重新解析一遍
2. 对于smarty模版引擎来说,不必在程序里再做parse()这样的操作了,smarty会自动帮我们做,而且已经编译过的网页,如果在没有改动的情况下,smarty会跳过重新编译的动作而直接去执行编译过的网页,以节省编译时间。
Smarty的其它优点:
1. 速度快:相对于其它的模版引擎而言的
2. 编译型:采用smarty编写的程序在运行时会编译成一个非模版技术的php文件。这个文件采用了php与html混合的方式,在下一次访问模版时将web请求直接转换到这个文件中,而无需重新编译(在模版文件没有改动的情况下)
3. 缓存技术:它可以将用户最终看到的html网页缓存成一个静态的html网页。当用户开启缓存时,可以设置缓存时间,在缓存文件没到期之前,将用户的请求直接转换到这个静态的缓存文件,相当于调用了一个静态的html文件。
4. 模版中可以使用流程控制语句。
不适合使用smarty的地方
1. 需要实时更新的内容,例如:股票显示,它需要经常对数据进行更新
2. 小项目。
Smarty模版引擎运作流程。
①在php程序运行时,初始化smarty模版引擎
②smarty模版引擎读取模版文件(.html或tpl文件)
③在读取模版文件的时候,smarty模版引擎会自动判断该模版文件是否需要重新编译。
④如果不需要重新编译,则直接进行模版变量替换。
⑤如果是第一次执行此程序文件或者说模版被改动了,那么就需要重新编译后再进行模版变量替换。
⑥最终执行的是编译后的php文件。
⑦输出结果到浏览器。