smarty 基础一

smarty 基础1



  以前就接触过smarty,也会用,不过很长时间没用就忘了,今天复习到这里,就写篇文章,无多大意义、自己复习用,懂的人就别看了。

先了解一下smarty:

Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离

smarty优点:

1 速度快 2 编译型 3 缓存技术 4 插件技术 5 模板中可以使用判定语句

 

 

好了下面开始学习使用smarty了

 

第一步 可以到官网上下载 上下载最新版本(目前最新为3,1RC1)、官网为:http://www.smarty.net/

目录分析:

打开压缩包 目录结构为dome 和libs dome里面是程序。libs里面是是smarty核心类和系统插件和插件目录

dome里包含:

cache 缓存文件夹

configs     配置文件夹, 里面的文件后缀名都是以.conf 结尾

plugins 插件文件夹

templates     模板文件夹,里面的文件后缀名都是以.tpl 结尾

templates_c   模板生成的缓存文件家

 

开始:

 

首先创建一个index.php文件,

 

<?php
define ("BASE_PATH",$_SERVER['DOCUMENT_ROOT']);
//ECHO BASE_PATH;
define ('SMARTY_PATH','/smt/smarty/');

require BASE_PATH.SMARTY_PATH.'Smarty.class.php';  //引入Smarty类文件

$smarty = new Smarty; //实例化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.'congifs/';		//定义配置目录
$smarty->cache_dir = BASE_PATH.SMARTY_PATH.'cache/';		//定义编译缓存目录
$smarty->cache_lifetime = -1;  //缓存时间,这里将以秒为单位进行计算缓存有效的时间。
//当为-1时表示永不过期,当为0时表示在程序每次执行时缓存总是被重新建立
$smarty -> cache = false; //是否开启缓存,初期测试建议不要开启
$smarty->left_delimiter = '{%';   //重新定义左右边界符号,防止和javascript中{}冲突 
$smarty->right_delimiter = '%}';
?>

 

9.7 21:25 

今天看到一篇误人子弟的smarty教程,里面没有说清楚,害我浪费了1个小时为了个html_checkboxes,最好还是借助手册看懂了,关键时候还是看手册啊,今天决定学习smarty从手册学起,其他都是浮云。

好了 上面学到怎样建立smarty文件

现在学习最基础的,向smarty模板文件中传值。

smarty 使用assign函数进行传值,传入的数据在模板中可以进行加工(如首字母大小、日期格式化等),最后得到想要的代码,通过display函数来引入模板,模板直接写模板文件名就可以了,以为上面已经定义了模板所在的文件夹。

 

先来学习最最基础的吧

require('smarty/Smarty.class.php');

$smarty = new Smarty;

$smarty -> assign('title','第一个smarty实例');  //传入两个变量
$smarty -> assign('content','内容content');

$smarty -> display('index.tpl');  //引入模板文件

 

 index.tpl  模板文件

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{%$title%}</title>
</head>

<body>
{%$content%} 
</body>
</html>

显示效果: 

smarty 基础一