smarty 基础
smarty 模板 主要用来 分离程序的前端和后端
<?php
//smarty 类 至少要有这三个变量存在
class smarty
{
public $left = "{"; //左分隔符
public $right = "}" ;//右分隔符
//$smarty->left_delimiter = '<{'; //设置模板语言中的左结束符
//$smarty->right_delimiter = '}>'; //设置模板语言中的右结束符
public $arr = array();//存储变量
function assign($key,$value)// assign()方法向模板里面注册变量
{
$this->arr[$key] = $value; //找到数组向里面赋值
//smarty 类里面必须要提供一个方法 assign() 方法 用来往模板里面注册变量的方法
//必须有两个参数 key 和 value 代表你需要注册变量的名字和值
}
// $smarty->assign("aa","world");
//display ()方法 用来显示模板 必须给一个参数 可以是模板的名称或者模板的路径
//将模板文件拿到PHP 页面显示 将模板里面的变量解析
function display($name)
{
//通过名称找到模板路径 smary 里面所有的模板统一放到一个文件夹下
$url = "/".$name;
//读取模板文件
$str = file_get_contents($url);//读文件内容方法 返回整个模板的字符串
//将str字符串里面的某些内容({变量})进行了替换 通过正则匹配 左右分隔符 取得变量
//将模板里面的<{$aa}>替换成<?php echo $arr[aa]
//将替换好的字符串保存到编译好的文件
file_put_contents($filename,$str);
//将编译好的文件 拿到当前页面显示
include($filename);
}
}
//init.inc.php smarty的入口文件 比较重要
//libs文件夹 核心目录 包含smarty.class.php 核心类
//plugins 存放的是插件 sysplugins 系统插件 Autoloader.php 自动加载类文件
//configs 存放配置文件 plugins 自定义插件目录 不要改自带的
//templates 存放模板 templates_c 存放编译过的文件
// echo_FILE_ 双下划线fille 代表当前文件的目录 什么文件都可以用 找到当前项目的根
// dirname(_FILE_) 取路径中的目录
dir 目录的意思
echo str_replace()替换字符串
查找替换 需要三个参数 :
1.需要替换的字符串 也就是"\" 反斜杠 但双引号里面写一个反斜杠代表转译 所以这里写两个
2. 要替换成的字符串 也就是"/"
3. 要替换什么 也就是 目录
echo str_replace("\\","/",dirname(_FILE_)."/")
替换完成用.拼接一个"/"
//Root 里面存的是该程序的根
//require 相当于include 引入外部的文件
define("ROOT",str_replace("\\","/",dirname(__FILE__)).'/'); //常量ROOT中指定项目根目录
//echo str_replace("\\","/",dirname(__FILE__)).'/'; //获取当前文件所在的位置
require ROOT.'libs/Smarty.class.php'; //加载Smarty类文件
$smarty = new Smarty(); //实例化Smarty对象
//定义常量目录
define("CSS_PATH","/project/css/");
define("JS_PATH","/project/js/");
//$smarty -> auto_literal = false; //就可以让定界符号使用空格 如果默认定界符是{} 不要打成false 空格会解析 而且解析错误
//如果$smarty -> auto_literal =true;代表定界符(默认{} 我们改成了<{}>)不可以使用空格一旦使用便不会解析
$smarty->setTemplateDir(ROOT.'templates/'); //设置所有模板文件存放位置
//$smarty->addTemplateDir(ROOT.'templates2/'); //添加一个模板文件夹
$smarty->setCompileDir(ROOT.'templates_c/'); //设置编译过的模板存放的目录
$smarty->addPluginsDir(ROOT.'plugins/'); //设置为模板扩充插件存放目录
$smarty->setCacheDir(ROOT.'cache/'); //设置缓存文件存放目录
$smarty->setConfigDir(ROOT.'configs/'); //设置模板配置文件存放目录
$smarty->caching = false; //设置Smarty缓存开关功能
$smarty->cache_lifetime = 60*60*24; //设置缓存模板有效时间一天
$smarty->left_delimiter = '<{'; //设置模板语言中的左结束符
$smarty->right_delimiter = '}>'; //设置模板语言中的右结束符