Maison  >  Article  >  php教程  >  smarty模板技术,smarty模板

smarty模板技术,smarty模板

WBOY
WBOYoriginal
2016-06-13 08:46:501078parcourir

smarty模板技术,smarty模板

一、什么是smarty?
smarty是一个使用php写出来的模板php模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用php程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

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

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

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

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

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

三、不适合使用smarty的地方:

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

2. 小项目。小项目因为项目简单而美工与程序员兼于一人的项目,使用smarty会丧失php开发迅速的优点。

四、smarty安装及配置:

下载smarty的安装包解压后,把libs文件夹放在网站根目录下,然后创建几个文件夹
templates       存放模板文件

templates_c    存放编译后的文件

configs           存放配置文件

cache             存放缓存文件
再创建初始化文件smarty.init.php

<span><?<span>php
    </span><span>include</span> "./libs/Smarty.class.php";<span>//</span><span>包含Smarty类库所在的文件</span>
    <span>$smarty</span>=<span>new</span> Smarty();<span>//</span><span>创建一个Smarty类的对象$smarty</span>
    <span>$smarty</span>->template_dir="./templates/";<span>//</span><span>设置所有模板文件存放目录</span>
    <span>$smarty</span>->compile_dir="./templates_c/";<span>//</span><span>设置所有编译过的模板文件存放目录</span>
    <span>$smarty</span>->config_dir="./configs/";<span>//</span><span>设置模板中特殊配置文件存放的目录</span>
    <span>$smarty</span>->cache_dir="./cache/";<span>//</span><span>设置存放Smarty缓存文件的目录</span>
    <span>$smarty</span>->caching=1;<span>//</span><span>设置开启Smarty缓存模板功能</span>
    <span>$smarty</span>->cache_lifetime=60*60*24;<span>//</span><span>设置模板缓存有效时间为1天</span>
    <span>$smarty</span>->left_delimiter='<{';<span>//</span><span>设置模板语言中的左结束符</span>
    <span>$smarty</span>->right_delimiter='}>';<span>//</span><span>设置模板语言中的右结束符</span>
?></span>

五、smarty引擎运行机制:

1、新建模板文件index.tpl及项目中所需的配置文件my.conf,配置文件也可后期补充

<span><span><</span><span>{config_load </span><span>file</span><span>="../configs/my.conf"</span><span>}</span><span>></span><span><!--</span><span> 加载配置文件 </span><span>--></span>
<span><</span><span>html</span><span>></span>
    <span><</span><span>head</span><span>></span>
        <span><</span><span>meta </span><span>charset</span><span>="utf-8"</span><span>></span>
        <span><</span><span>title</span><span>><</span><span>{$title</span><span>}</span><span>></</span><span>title</span><span>></span>
    <span></</span><span>head</span><span>></span>
    <span><</span><span>body </span><span>bgcolor</span><span>="<{#bgColor#}>"</span><span>></span>
        <span><</span><span>{$content</span><span>}</span><span>></span>
    <span></</span><span>body</span><span>></span>
<span></</span><span>html</span><span>></span></span>

2、新建程序入口文件index.php,引入控制器文件,传值并分配变量,并显示模板index.tpl

<span><?<span>php
    </span><span>//</span><span>引入smarty.init.php</span>
    <span>include</span> 'smarty.init.php'<span>;
    </span><span>$smarty</span>->assign("title","我的第一个文件标题"<span>);
    </span><span>$smarty</span>->assign("content","我的第一个文件内容"<span>);
    </span><span>$smarty</span>->display("index.tpl"<span>);
</span>?></span>

3、运行index.php,通过smarty控制器文件会生成一个php格式的编译文件,当缓存机制未开启时,浏览器会读取这个编译文件并最终显示出来。当开启缓存机制时,smarty控制器会生成一个静态HTML页面,即缓存文件com_index.tpl,这样浏览器读取性能更高。具体缓存过程详见smarty详细使用教程第9点

 

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn