Smarty模板的一个最重要的功能就是将前端和后端分离。前端将完全不用php的语言,用Smarty自己默认定义的限界符{}
感觉到时候前端用bootstrap 后台用php,应该会是个不错的组合(bootstrap还不太会用,争取这周学会使用bootstrap模板)
<?php
define('BASE_PATH', $_SERVER['DOCUMENT_ROOT']);
//定义Smarty的绝对路径
define('SMARTY_PATH', '/phplearn/Smarty/2/Smarty/libs/' );
//加载Smarty文件
require BASE_PATH.SMARTY_PATH.'Smarty.class.php';
//实例化一个Smarty对象
$smarty = new Smarty;
//定义各个目录的路径
$smarty->template_dir = BASE_PATH."/phplearn/Smarty/2/Smarty/demo/templates/";
$smarty->compile_dir = BASE_PATH."/phplearn/Smarty/2/Smarty/demo/templates_c/";
$smarty->config_dir = BASE_PATH."/phplearn/Smarty/2/Smarty/demo/configs/";
$smarty->cache_dir = BASE_PATH."/phplearn/Smarty/2/Smarty/demo/cache/";
?>
上面的这段代码是用来实现Smarty的初始化的,定义各个路径
Smarty中前端和后端之间信息的传递是利用的是assign函数,举例如下:
<?php
header("Content-type:text/html;charset=utf-8");
include("config.php");//载入配置文件
$arr = array('0'=>'computerbook','name'=>'PHP从入门到精通','unit_price'=>array('price'=>'¥65.00','unit'=>'本'));
$smarty->assign("title","第一个Smarty程序");
$smarty->assign("arr",$arr);
$smarty->display("index.html");
?>
在你templates这个文件夹里的index.html就可以使用{$arr} 和 {$title} 这两个变量
还有一种全局变量的定义形式,是利用conf配置文件。
title = Welcome to Smarty!
cutoff_size = 40
[setup]
bold = true
这是一个conf配置文件,放在configs目录下,则在index.html中就可以引用该配置文件,里面变量输出的形式是{#变量名#}
注意,应用文件时,默认的开始路径是index.html的所在目录 引入文件的格式是{config_file file="xxxx"}