Home  >  Article  >  Backend Development  >  php Smarty模板发动机配置与测试

php Smarty模板发动机配置与测试

WBOY
WBOYOriginal
2016-06-13 11:33:06814browse

php Smarty模板引擎配置与测试

Smarty简介

smarty是一个使用PHP写出来的模板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。在模板文件使用判断语句可以非常方便的对模板进行格式重排。

缺点:
1. 需要实时更新的内容。例如像股票显示,它需要经常对数据进行更新,这类型的程序使用smarty会使模板处理速度变慢。
2. 小项目。小项目因为项目简单而美工与程序员兼于一人的项目,使用smarty会丧失php开发迅速的优点。


1.安装

下载 Smarty包。解压并改名为Smarty 并放于 网站目录下,本例:D:\wamp\www\Smarty

2.配置
php.ini文件中修改 include_path
如下:
; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
; Windows: "\path1;\path2"
include_path = "D:\wamp\www\Smarty\libs"
本例在Windows下修改,Linux同理

网站目录下 建立文件夹-MySmarty,本例路径:D:\wamp\www\Smarty\MySmarty
并在其下 建立4个子文件夹 templates,configs,templates_c,cache
分别用于 
1.存储模板
2.存放配置信息
3.存放编译文件

4.存放缓存

为各文件夹设置权限。
windows: 右键->属性->安全->编辑  进行用户权限修改
linux:  chmod指令

3.测试

在网站目录下建立index.php文件   本例路径 D:\wamp\www\Smarty\MySmarty

index.php<?php /** * Example Application * @package Example-application */require('../libs/Smarty.class.php');$smarty = new Smarty;$smarty->template_dir = 'D:\wamp\www\Smarty\MySmarty\templates';$smarty->config_dir = 'D:\wamp\www\Smarty\MySmarty\configs';$smarty->cache_dir = 'D:\wamp\www\Smarty\MySmarty\cache';$smarty->compile_dir = 'D:\wamp\www\Smarty\MySmarty\templates_c';//$smarty->force_compile = true;$smarty->assign("name", '明天');$smarty->display('index.tpl');?>

在D:\wamp\www\Smarty\MySmarty\templates建立index.tpl

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">好,{$name}!

运行index.php,测试设置是否正确。


推荐参考 :此处

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