Home  >  Article  >  php教程  >  Smarty,smarty教程

Smarty,smarty教程

WBOY
WBOYOriginal
2016-06-13 09:05:27970browse

Smarty,smarty教程

简述:

Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。

简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

优点:

1. 速度:采用Smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。

2. 编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下)

3. 缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。

4. 插件技术:Smarty可以自定义插件。插件实际就是一些自定义的函数。

5. 模板中可以使用if/elseif/else/endif。在模板文件使用判断语句可以非常方便的对模板进行格式重排。

不适合使用Smarty的地方:

1、需要实时更新的内容。例如像股票显示,它需要经常对数据进行更新,这类型的程序使用smarty会使模板处理速度变慢。

2、小项目。小项目因为项目简单而美工与程序员兼于一人的项目,使用Smarty会在一定程度上丧失PHP开发迅速的优点。

(PS:不过为了整个项目的规范,请大家尝试去使用模板引擎。其实习惯了,开发速度会更加快,以上是没有用习惯模板引擎的开发者遇到的问题)

smarty的程序设计部分:

<?<span>php 
</span><span>include_once</span>("./Smarty/Smarty.class.php"); <span>//</span><span>包含smarty类文件 <br /></span>
<span>$smarty</span> = <span>new</span> Smarty();                 <span>//</span><span>建立smarty实例对象$smarty </span>
<span>$smarty</span>->templates("./templates");       <span>//</span><span>设置模板目录 </span>
<span>$smarty</span>->templates_c("./templates_c");   <span>//</span><span>设置编译目录 </span>
<span>$smarty</span>->cache("./cache");               <span>//</span><span>缓存目录 </span>
<span>$smarty</span>->cache_lifetime = 0;             <span>//</span><span>缓存时间 </span>
<span>$smarty</span>->caching = <span>true</span>;                 <span>//</span><span>缓存方式 </span>

<span>$smarty</span>->left_delimiter = "{#"<span>; 
</span><span>$smarty</span>->right_delimiter = "#}"<span>; 
</span><span>$smarty</span>->assign("name", "zaocha");       <span>//</span><span>进行模板变量替换 </span>
<span>$smarty</span>->display("index.htm");  <span>//</span><span>编译并显示位于./templates下的index.htm模板 </span>
?> 

 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:PHP Array,phparrayNext article:PHP mailer邮件发送