本文作者:心月

Smarty模板引擎快速入门教程

心月IT博客 2019-07-24
摘要:Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑。

在开始教程前,我觉得有必要先了解下mvc,因为了解mvc可以让我们更好的理解smarty模板引擎。


1、什么是MVC?

mvc的英文全名是,Model View Controller,它是一种开发模式。其核心思想是:数据的输入、数据的处理、数据显示的强制分离。

    Model(模型)表示应用程序核心(比如数据库记录列表)。是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。

    View(视图)显示数据(数据库记录)。是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。

    Controller(控制器)处理输入(写入数据库记录)。是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。


本文介绍的smarty主要在view(视图)上工作,完成数据的显示。


2、Smarty的优点

      ① 速度:采用Smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。

  ② 编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下)

  ③ 缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。

  ④ 插件技术:Smarty可以自定义插件。插件实际就是一些自定义的函数。

  ⑥ 模板中可以使用if/elseif/else/endif。在模板文件使用判断语句可以非常方便的对模板进行格式重排。


3、Smarty的使用

    a、下载最新的smarty。

    b、下载的smarty内核文件夹libs,放入php网站文件夹内。(安全起见,可自行修改文件夹名,如改名为smarty)

    c、分别在网站目录下建立templates、templates_c、configs、cache四个文件夹。

smarty的目录结构

smarty的目录结构


    d、在templates/目录下写模板,建立index.htm内容为:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	{$world}
</body>
</html>


然后再写一个PHP文件:

<?php
include('smarty/Smarty.class.php');
//程序目录
const DIR_SEP = DIRECTORY_SEPARATOR;
define('SITE_ROOT', dirname(__FILE__).DIR_SEP);

$smarty = new Smarty();
$smarty->template_dir = SITE_ROOT.'templates'.DIR_SEP;
$smarty->complie_dir  = SITE_ROOT.'templates_c'.DIR_SEP;
$smarty->config_dir   = SITE_ROOT.'configs'.DIR_SEP;
$smarty->cache_dir    = SITE_ROOT.'cache'.DIR_SEP;
$smarty->left_delimiter = '{'; //左定界符
$smarty->right_delimiter = '}';//右定界符

$smarty->assign('world','hello world!');
$smarty->display('index.htm');
?>

    在使用php中使用smarty前先要引入smarty文件目录下的Smarty.class.php文件,然后实例化smarty类,实例化之后还要指定模板文件路径,缓存文件存放路径,已经变量解析的左右定界符。相关配置变量设置好后就可以使用smarty了,smarty是通过assign方法把变量注入到模板,然后指定显示模板,这样就可以在相应的模板文件里使用了。比如上面的代码中:

$smarty->assign('world','hello world!');

    这句代码的意思是,把'hello world!'赋给'world',在index.htm模板文件中就可以通过{$world},其中‘{}’是定界符,左定界符和有定界符,在模板中使用通过assign注入的变量,定界符一定不能少。

当然:'hello world!'可以是php变量,也可以是数组。


smarty的使用看起来是不是很简单,看十遍不如动手操作一遍,赶紧动手试试吧。

文章版权及转载声明:

作者:心月 本文地址:http://www.xinyueseo.com/smarty/286.html发布于 2019-09-07
文章转载或复制请以超链接形式并注明出处心月IT博客

分享到:
赞(

发表评论

快捷输入:

    评论列表 (有 0 条评论,人围观)参与讨论