程序篇 + 缓存篇 + 过滤器 + 如何把smarty应用到中级项目
/**
* smarty 模板
* 文件夹解析
* libs/plugins 自定义插件文件夹
* libs/sysplugins 系统插件文件夹
* libs/debug.tpl 调试模板
* libs/Smarty.class.php Smarty3.0中的核心类文件
* libs/SmartyBC.class.php 向后兼容类,Smarty2.0版本,
* 编译过程原理
* 用户请求 -> PHP文件 -> Smarty -> 模板文件 -> 编译文件 -> 执行输出
* smarty安装与配置
* 1、直接将 libs文件夹复制到项目的目录中重命名为smarty
* 2、在Smarty.class.php文件夹的构造函数php文件夹的构造函数__construct函数中找对网站需要定义的目录函数中找对网站需要定义的目录
* 3、根据__construct函数中的设置去定义对应的目录
* smarty开发流程
* 1、在PHP页面中,包含Smarty.class.php文件到当前页面
* require_once 'smarty/Smarty.class.php';
* 2、实例化对象 $smarty = new Smartya();
* 3、分配变量到模板文件 $smarty->assign('name',$name);
* 4、显示输出 $smarty->display($file.html);
* smarty中相关属性和方法
* 1、左右定界符 smarty/Smarty.class.php
* $left_delimiter $right_delimiter
* *自定义定界符:xxx.php文件中
* $smarty->left_delimiter = '{{';
* $smarty->right_delimiter = '}}';
* 2、相关方法
* $smarty->assign($name,$value); 分配变量到模板文件
* $smarty->display($filename); 显示并输出相应的模板文件
* 3、常用路径设置(3.0版本后可自定义路径)xxx.php文件中
* $smarty->setTemplateDir() //模板目录
* $smarty->setCompileDir() //编译目录
* $smarty->setConfigDir() //配置文件
* $smarty->setCacheDir() //缓存目录
*
* 程序篇( PHP )
* 1、常量
* SMARTY_DIR (代表包含Smarty.class.php文件的路径,也就是说哪个文件包含Smarty.class.php,那么它就会自动到该目录下寻找相应的文件夹(如plugins)。)
* 2、常用的变量
* 1、 $template_dir 模板目录
* 2、 $compile_dir 编译目录
* 3、 $config_dir 配置目录
* 4、 $cache_dir 缓存目录
* 5、 $left_delimiter
* 6、 $right_delimiter
* 7、 $caching 缓存 bool类型的值,true默认false
* 8、 $cache_lifetime 缓存过期时间,默认单位为秒
* 9、 $debugging 开启调试
* 10、$php_handling 主要应用就是{php}{/php},在Smarty3.0版本之前,如果想使用php标签,那么必须开启php_handing=true;
*
* 3、常用方法
* 1、 assign 分配变量到模板文件 *
* 2、 assignByRef 分配变量到模板文件(引用)
* 3、 append 追加数据到数组中,过程分为两步,
* 第一是追加数据到数组中
* 第二,分配变量到模板文件中(也就是我不需要在进行assign赋值了)
* 4、 appendByRef 追加数据元素地址到数组中
* 5、 clearAllAssign 清除所有赋值变量
* 6、 clearAssign 清除指定变量的值
* 7、 clearCache 清理缓存
* 8、 configLoad 载入配置文件
* 9、 clearConfig 清除配置文件信息
* 10、display 执行输出并显示指定页面 *
* 11、fetch 载入文件到字符串
* 与 file_put_contents() 配合使用
* 12、templateExists 判断模板是否存在 *
*
*
* 缓存篇( PHP )
* 1、Smarty中缓存设置
* 1、$smarty->setCacheDir($cache_dir) 设置缓存目录,不设置则采用默认cache文件夹
* 2、$smarty->caching=true 开启缓存机制 caching = true,默认false
* 3、$smarty->cache_lifetime=3600 设置缓存生命周期,默认单位秒,3600一小时
* 2、缓存检测
* 1、$smarty->isCached(“tpl.tpl”) 检测某一模板是否具有缓存
* 2、$smarty->clearCache(“tpl.tpl”) 功能:清除指定模板缓存文件
* 3、$smarty->clearAllCache() 功能:清除所有系统缓存文件
* 3、缓存的存储方式
* 我们的smarty缓存是存储在服务器的
* 4、局部缓存
* 使用方法
* 1、PHP文件
* $smarty->assign("var" , "value" , true)
* 2、模板文件
* {$var nocache=true}
* {nocache} ... {/nocache}
*
*
* 过滤器(PHP)
* 主要作用:进行数据过滤
* 1、Prefilters 预过滤器
* 2、Postfilters 后过滤器
* 3、OutputFilters 输出过滤器
*
* 使用方法:
* $smarty->registerFilter($type , $callback)
* $type : 定义过滤器的类型
* pre 预过滤器
* post 后过滤器
* output 输出过滤器
* $callback 自定义回调函数
*
*
* 如何把Smarty应用到中级项目
* 1、在我们的核心文件夹中,放入Smarty文件夹(libs),改名为smarty
* 2、在核心文件,在自动加载文件,包含Smarty.class.php文件
* 3、在主视图类下extends继承Smarty模板类
* 4、$this->view = new View();创建视图类对象时,那么该对象是否继承Smarty类中属性与方法。
* 5、在应用模板的过程,你就可以采用$this->view->assign()或$this->view->display()
*
*
*/