smarty模板的作用简单来说就是要将页面设计与具体程序逻辑分开,也可理解为静态页面与动态显示分隔开,这样就能便于美工人员和程序开发人员各司其职,分工明确,互不干扰。
一、安装配置smarty模板
这是使用smarty模板之前需要做好的准备工作。用户可以登录http://www.smarty.net/download进行下载,笔者下载的是3.1.29,解压。文件夹libs下包含的文件有:
将libs文件拷贝到服务器根目录下,当然也可根据自身文件进行调整。因为笔者用的是apache服务器,所以放置在htdocs目录下(最好是放在站点根目录下D:\program files\xampp\htdocs\project\php),并将libs文件夹改名为smarty。
smarty文件夹下,新建4个空文件夹: templates、templates_c、configs、cache 。当然templates文件夹是用来放置html静态页面的,也可和smarty文件夹并列放置在一级,只要保证地址对应正确即可。
在站点根目录(D:\program files\xampp\htdocs\project\php\)下新建文件config.php,详细代码为:
<?php
/* 定义服务器的绝对路径 */
define('BASE_PATH',$_SERVER['DOCUMENT_ROOT']);
/* 定义Smarty目录的绝对路径 */
define('SMARTY_PATH','\project\php\Smarty\\');
/* 加载Smarty类库文件 */
require BASE_PATH.SMARTY_PATH.'Smarty.class.php';
/* 实例化一个Smarty对象 */
$smarty = new Smarty;
/* 定义各个目录的路径 */
$smarty->template_dir = BASE_PATH.SMARTY_PATH.'templates/';
$smarty->compile_dir = BASE_PATH.SMARTY_PATH.'templates_c/';
$smarty->config_dir = BASE_PATH.SMARTY_PATH.'configs/';
$smarty->cache_dir = BASE_PATH.SMARTY_PATH.'cache/';
/* 定义定界符 */
//$smarty->left_delimiter = '<{';
//$smarty->right_delimiter = '}>';
?>
至此,smarty的安装配置就完成了。
二、smarty使用示例
下面举个很简单的例子,大家就能理解smarty模板的作用和用法了。
在templates 中新建一个文件index.html,详细代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>{$title}</title>
</head>
<body>
我使用的是:{$str}
</body>
</html>
index.html很简单,在应该放title和str的位置我用变量$title和$str来代替,也就是说具体显示的内容我用变量来表示。这也就体现在美工设计时,我只需把界面设计出来,告诉程序开发人员每个地方显示的内容变量即可。
那程序员需要对$title和$str进行赋值。
新建一个test.php,代码为:
<?php
include_once "../config.php";
$str1='这是一个实例!';
$str2='smarty模板";
$smarty->assign('title',$str1);
$smarty->assign('str',$str2);
$smarty->display('testsmarty/index.html');
?>
程序开发人员在开发程序的过程中,给title、str赋值,就对应地显示在了index.html页面相应的位置。所以这样前端和后台的开发只靠变量衔接。