时间:2023-04-20 13:27:40 点击次数:13
一、Smarty 简介
Smarty 是 PHP 中的一个模板引擎,是众多 PHP 模板中最优秀、最著名的模板之一。
1、什么是Smarty
Smarty 是一个使用 PHP 编写的 PHP 模板引擎,它将一个应用程序分成两个部分实现:视图和逻辑控制。简单地讲,目的就是将 UI(用户界面)和 PHP code(PHP代码)分离。这样,程序员在修改程序时不会影响的页面设计,而美工在重新设计或是修改页面时也不会影响程序逻辑。
2、Smarty 特点
采用 Smarty 模板编写的程序可以获得最快的速度。注意,这是相对于其他模板而言。可以自行设置模板定界符,如{}、{{}}、<!--{}-->等。仅对修改过的模板文件进行编译。模板中可以使用 if/elseif/else/endif。内建缓存支持。可自定义插件。二、Smarty 的安装配置
1、Smarty 下载和安装
PHP 没有内置 Smarty 模板,需要单独下载和配置,而且 Smarty 要求服务器上的 PHP 版本最低为4.0.6。用户可以通过官网下载最新的 Smarty 压缩包。本次使用的是 smarty-3.1.35。
将压缩包解压后,得到一个 libs 目录,复制 libs 目录到服务器根目录下,并将其重命名,一般该目录的名称为 smarty 或 class 等,这里改为 smarty。至此,Smarty 模板安装完毕。
2、第一个 Smarty 程序
具体开发步骤如下:
(1)新建一个程序目录,存放位置为“服务器地址\www\project\collection\test”,命名为 test 。
(2)复制 Smarty 到目录 test 下,在 Smarty 目录下新建 4 个目录,分别为 templates、templates_c、configs 和 cache。这是,目录结果如图1 所示。
(3)新建一个 .html 静态页,输入数据。输入完毕后将文件保存到刚新建的 templates 目录下,并命名为 index.html,代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{$title}</title>
</head>
<body>
{$content}
</body>
</html>
说明:代码中加粗的部分就是 smarty 标签,大括号“{}”为标签的定界符,$title和$content 为变量。
(4)返回上级目录,在“test\”下新建一个 index.php 文件。代码如下:
打开浏览器运行index.php文件,结果如下图:
3、Smarty 配置
下面详细讲解 Smarty 模板的配置步骤:
(1)确定 Smarty 目录的位置。一般会放在更目录下。
(2)新建4个目录templates、templates_c、configs 和 cache。其中目录templates 为模板文件目录;目录 templates_c 为存储项目的编译文件;目录 configs 存储项目的配置文件;目录 cache 存储项目的缓存文件。
(3)创建配置文件。如果要应用 Smarty 模板,就一定要包含 Smarty 类库和相关信息。将配置信息写到一个文件中,使用只需加载文件即可。配置文件 config.php 的代码如下:
<?php// 定义服务器绝对路径define(BASE_PATH,$_SERVER[DOCUMENT_ROOT]);// 定义 Smarty 目录的绝对路径define(SMARTY_PATH,\test\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/;?>
配置文件参数说明:
BASE_PATH:指定服务器的绝对路径。SMARTY_PATH:指定 Smarty 目录的绝对路径。require:加载 Smarty 类库文件 Smarty.class.php。$smarty:实例化 Smarty 对象。$smarty->template_dir:定义模板文件存储目录。$smarty->compile_dir:定义编译文件存储目录。$smarty->config_dir:定义配置文件存储目录。$smarty->cache_dir:定义模板缓存文件目录。(1)assign() 方法为模板变量赋值。
(2)display() 方法用于显示模板。
举报/反馈