003 - Smart程序篇,详细解析(PHP)

xiaoxiao2021-02-28  93

程序篇 + 缓存篇 + 过滤器 + 如何把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() * * */
转载请注明原文地址: https://www.6miu.com/read-29031.html

最新回复(0)