一聚教程网:一个值得你收藏的教程网站

热门教程

php学习笔记Smarty的安装及初使化示例

时间:2022-06-25 02:17:34 编辑:袖梨 来源:一聚教程网

安装Smarty就是在自己的PHP项目中包含Smarty类库。安装步骤如下:

(1)需要到Smarty官方网站http://www.smarty.net/download.php下载最新的稳定版本,所有版本的Smarty类库都可以在Unix和Windows服务器上使用。
(2)然后解压压缩包,解开后会看到很多文件,其中有个名称为libs的文件夹,就是存有Smarty类库的文件夹。安装Smarty只需要这一个文件夹,其他的文件都没有必要使用。
(3)在libs中应该会有三个class.php文件、1个debug.tpl、1个plugin文件夹和1个core文件夹,直接将libs文件夹复制到您的程序主文件夹下。
(4)在执行的PHP脚本中,通过require()语句将libs目录中的Smarty.class.php类文件加载进来,Smarty类库就可以使用了。
上面提供的安装方式适合给程序被带过来移过去的开发者使用,这样就不用再考虑主机有没有安装Smarty了。
 初始化Smarty类库的默认设置
通过前面对Smarty类库安装的介绍,调用require()方法将Smarty.class.php文件包含到执行脚本中,并创建Smarty类的对象就可以使用了。但如果需要改变Smarty类库中一些成员的默认值,不仅可以直接在Smarty源文件中修改,也可以在创建Smarty对象以后重新为Smarty对象设置新值。

 代码如下 复制代码

/**file: init.inc.phpSmarty对象的实例化及初使化文件  */
 
define("ROOT",str_replace("\\", "/",dirname(__FILE__)).'/');  //指定项目的根路径
requireROOT.'libs/Smarty.class.php';    //加载Smarty类文件
 
$smarty = newSmarty();  //实例化Smarty类的对象$smarty
 
/* 推荐用Smarty3以上版本方式设置默认路径,成功后返回$smarty对象本身,可连贯操作 */
$smarty ->setTemplateDir(ROOT.'templates/')  //设置所有模板文件存放的目录
        // ->addTemplateDir(ROOT.'templates2/')     //可以添加多个模板目录(前后台各一个)
        ->setCompileDir(ROOT.'templates_c/')    //设置所有编译过的模板文件存放的目录
        ->setPluginsDir(ROOT.'plugins/')     //设置为模板扩充插件存放的目录
        ->setCacheDir(ROOT.'cache/')        //设置缓存文件存放的目录
        ->setConfigDir(ROOT.'configs');     //设置模板配置文件存放的目录
 
$smarty -> auto_literal = false;            //就可以让定界符号使用空格
$smarty->caching = false;                   //设置Smarty缓存开关功能
$smarty->cache_lifetime = 60*60*24;         //设置模板缓存有效时间段的长度为1天
$smarty->left_delimiter = '<{';           //设置模板语言中的左结束符
$smarty->right_delimiter = '}>';         //设置模板语言中的右结束符
?>

补充选择Smarty模版引擎

对PHP来说,有很多模板引擎可供选择,但Smarty是一个使用PHP编写出来的,是目前业界最著名、功能最强大的一种PHP模板引擎。Smarty像PHP一样拥有丰富的函数库,从统计字数到自动缩进、文字环绕以及正则表达式都可以直接使用,如果觉得不够,SMARTY还有很强的扩展能力,可以通过插件的形式进行扩充。另外,Smarty也是一种自由软件,用户可以自由使用、修改,以及重新分发该软件。Smarty的优点概括如下。
速度:相对于其他的模板引擎技术而言,采用Smarty编写的程序可以获得最大速度的提高。
编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将Web请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下),使用后续的调用速度更快。
缓存技术:Smarty提供了一种可选择使用的缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页。当用户开启Smarty缓存时,并在设定的时间内,将用户的Web请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。
插件技术:Smarty模板引擎是采用PHP的面向对象技术实现,不仅可以在原代码中修改,还可以自定义一些功能插件(就是一些按规则自定义的函数)。
强大的表现逻辑:在Smarty模板中能够通过条件判断以及迭代地处理数据,它实际上就是一种程序设计语言,但语法简单,设计人员在不需要预备的编程知识前提下就可以很快学会。
当然,也有不适合使用Smarty的地方。例如,需要实时更新的内容,需要经常重新编译模板,所以这类型的程序使用Smarty会使模板处理速度变慢。另外,在小项目中也不适合使用Smarty模板,小项目因为项目简单而美工与程序员兼于一人的项目,使用Smarty会在一定程度上丧失PHP开发迅速的优点。

热门栏目