搜索
首页php教程php手册smarty模板技术,smarty模板

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点

 

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用