Smarty基本配置与使用
感觉这种古董技术不适合现在的趋势。
但是因为目前要用到这方面的技能,所有就学习一下。
但是感觉smarty真心不如用直接用原生PHP好用。
接下来还会陆续发Smarty的入门教程。
配置
感觉现在用smarty的项目都是老项目,具体这么配置基本上不用我们操心了。
而且个个项目也有差异,所以这部分主要强调看懂。
我们先用一个简单的例子来演示一下最简单的smarty安装配置方法。
我们在LoveSmarty.php处理并发出数据然后在LoveSmarty.tpl中接收数据并表示。
首先我们先建立文件夹。
目录建好了就可以开始配置文件了
首先是LoveSmarty.php
<?php
//引入smarty文件 这个位置根据你的目录来找
include("libs/Smarty.class.php");
//实例化
$smarty = new Smarty;
/*
* 接下来是配置部分
*/
//是否使用缓存,开发阶段不建议使用缓存,所以~false
$smarty ->caching = false;
//模板目录,就是保存模板的位置,写对了smarty才能找到
$smarty->template_dir = './tpl';
//编译目录,保存编译后的tpl的地方
$smarty->compile_dir = './tpl_c';
//外部配置文件目录,这个配置文件我个人理解是放一些Smarty相关的常量的,之后会说。
$smarty->config_dir = './configs';
//缓存文件目录我们把缓存关了,所以可以无视。
$smarty->cache_dir = './cache/';
//配置分隔符,默认的分隔符是{}但是因为各种原因要换的话,用这个换。
/*
因为这里没有必要我就注释掉了。
$smarty ->left_delimiter="<{";
$smarty ->right_delimiter="}>";
*/
/*
*下面就是使用部分了
*/
//这句是传值语句,可以理解为"hello"是健,"你好"是值。在tpl中取用
$smarty->assign("hello","你好");
//调用tpl文件
$smarty->display("LoveSmarty.tpl");
然后是LoveSmarty.tpl
这个文件是模板文件,也就是用来生成页面的。这里很简单。
<p>{$hello}</p>
这里我们就完成了Smarty模板的基本配置。
简化设置
但是在平时使用中,不能每一个文件就配一次Smarty,所以我们可以将Smarty配置文件写在一个固定的文件里然后在需要的文件里引用它。
就像这样:
这里我们为了使项目结构清晰一些,创建一个名为controllers的文件夹来存放后台文件,同时将smarty的配置部分写成了共通文件方便使用。
这是配置并引用Smarty的文件:
(注意看这里的路径和上边不同。)
index.php
//引入smarty文件 这个位置根据你的目录来找
include("libs/Smarty.class.php");
//实例化
$smarty = new Smarty;
/*
* 接下来是配置部分
* 这里注意文件夹的位置,因为是相对于调用位置的,所以说我们要向外退出一层
*/
//是否使用缓存,开发阶段不建议使用缓存,所以~false
$smarty ->caching = false;
//模板目录,就是保存模板的位置,写对了smarty才能找到
$smarty->template_dir = '../tpl';
//编译目录,保存编译后的tpl的地方
$smarty->compile_dir = '../tpl_c';
//外部配置文件目录,这个配置文件我个人理解是放一些Smarty相关的常量的,之后会说。
$smarty->config_dir = '../configs';
//缓存文件目录我们把缓存关了,所以可以无视。
$smarty->cache_dir = '../cache/';
这样,当我们要使用Smarty时只要在PHP文件前引入这个index.php文件就好了。
如下:
require_once("../index.php");
基本使用流程
我们用一个简单的例子来演示Smarty的基本使用流程。
这里是php部分:
LoveSmarty.php
//引入Smarty的配置文件(就是上边的index.php)
require_once("../index.php");
//传入一个值
$smarty->assign("title","Smarty");
//传入一个数组
$arr = array( "item1" => "Smarty入门","item2"=>"Smarty基本语法");
$smarty->assign("arr", $arr);
$smarty->display("LoveSmarty.tpl");
tpl部分:
LoveSmarty.tpl
<!DOCTYPE html>
<html>
<head>
<title>{$title}</title>
</head>
<body>
<h1>{$title}</h1>
<ul>
<li>{$arr.item1}</li>
<li>{$arr.item2}</li>
</ul>
</body>
</html>
效果:
上边就是Smarty的基本使用流程。