Heim > Backend-Entwicklung > PHP-Tutorial > smarty模板技术,smarty模板_PHP教程

smarty模板技术,smarty模板_PHP教程

WBOY
Freigeben: 2016-07-12 08:59:53
Original
877 Leute haben es durchsucht

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>
Nach dem Login kopieren

五、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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1096613.htmlTechArticlesmarty模板技术,smarty模板 一、什么是 smarty? smarty 是一个使用 php 写出来的模板 php 模板引擎,它提供了逻辑与外在内容的分离,简单的讲,...
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage