Smarty 模板引擎下缓存设置

缓存:就是将用户重复使用的内容进行缓存生成HTML内容。

  缓存类型

    全局缓存: 将整个页面内容都生成静态内容。

      Cache_dir: 缓存目录配置

      Cache_lifetime:缓存的有效周期

      Cacheing:设置是否开启缓存

    局部缓存: 控制整个页面中的某个内容缓存,或者某个内容不缓存。

      insert函数调用的内容不缓存:

        定义insert类型的函数:

          Smarty 2.x版本:

            Function insert_插件名(参数列表){

              功能代码

            }

          Smarty 3.x版本:

            Function smarty_insert_插件名(参数){

              功能代码

            }

      前台调用

        {ts:insert name="插件名"}

    register_plugins()

      函数定义:

        Function smarty_modifier/block/function_插件名(参数){

          代码

        }

      动态注册函数为临时插件

        $tpl -> register_plugins("类型",函数名,前台调用的标签名)

        类型:modifier/block/function

        $tpl ->registerplugin("function","getmessage","samrty_function_插件名",控制是否缓存)

        True|默认不写:缓存数据

        False:不缓存数据

      前台调用:

        {ts:前台调用的标签名}

  【smarty.inc.php】 #首先要在smarty.inc.php中加入缓存文件的开启#

<?php
require_once("./libs/Smarty.class.php");
$tpl = new Smarty;
$tpl -> template_dir = "./templates/";
$tpl -> compile_dir = "./compilers/";
$tpl -> cache_dir = "./caches/";  //设置缓存文件目录
$tpl -> cache_lifetime = 30;  //缓存文件保留时间
$tpl -> caching = true;
$tpl -> left_delimiter = "{ts:";
$tpl -> right_delimiter= "}";
?>

  【contents.php】

<?php
require_once("./smarty.inc.php");
require_once("./mysql.class.php");
$id = 1;
if(isset($_GET[‘id‘]))
    $id = $_GET[‘id‘];

$sql = "select * from ts_ch_news where id={$id}";
$db = new MySql;
$db -> query($sql);
$data = $db -> find();
$tpl -> assign("title",$data[‘title‘]);
$tpl -> assign("body",$data[‘body‘]);

$cacheid = md5($_SERVER[‘REQUEST_URI‘]);
$tpl -> display("contents.html",$cacheid);
?>

  【contents.html】

<html>
    <head>
        <title>{ts:$title}</title>
    </head>
    <body>
        {ts:$body}
    </body>
</html>

  Display(模板文件名,缓存id);

    缓存id:文件的url地址进行md5加密

    $cache_id= md5($_SERVER[‘REQUEST_URI‘])

    #因为给缓存文件传值的时候需要id唯一,所以这里我们调用$_SERVER[‘REQUEST_URI‘并用MD5进行加密处理既可做到唯一#

  删除缓存

$tpl ->iscached("模板文件"[,缓存id])  判断缓存文件是否存在

$tpl -> clear_cache("模板文件"[,缓存id])   删除某个缓存文件

$tpl->clear_all_cache();  全部删除

<?php
if($tpl -> iscached("contents.html",$cache_id)){
    $tpl -> clearCache("contents.html",$cache_id);
    $tpl -> clearAllCache();
}
?>
时间: 2024-08-10 19:17:57

Smarty 模板引擎下缓存设置的相关文章

前端学PHP之Smarty模板引擎

前面的话 对PHP来说,有很多模板引擎可供选择,但Smarty是一个使用PHP编写出来的,是业界最著名.功能最强大的一种PHP模板引擎.Smarty像PHP一样拥有丰富的函数库,从统计字数到自动缩进.文字环绕以及正则表达式都可以直接使用,如果觉得不够,SMARTY还有很强的扩展能力,可以通过插件的形式进行扩充.另外,Smarty也是一种自由软件,用户可以自由使用.修改,以及重新分发该软件.本文将详细介绍Smarty模板引擎 概述 Smarty是一个php模板引擎.更准确的说,它分离了逻辑程序和外

Smarty模板引擎技术(一)

一.Smarty模板引擎简介 什么是smarty? Smarty是采用php写的一个模版引擎,设计的目的是要将php代码与html代码分离,使php程序员只专注于php代码的编写,网页美工只专注于网页的美化 没有模版引擎时出现的问题? html中php代码比重越来越大 页面的数量越来越多 程序设计与美工设计分工不明确 传统的php文件: 1. php代码跟html混编在一起,不利于程序员和美工的分工,程序员和美工不能同时修改一个文件 2.数据的传递同一页面传递,php数据在页面中的显示需要使用p

smarty模板引擎(一)基础知识

一.基本概念 1.什么是mvc? mvc是一种开发模式,核心思想是:数据的输入.数据的处理.数据显示的强制分离. 2.什么是smarty? smarty是一个php的模板引擎.更明确的来说,它可以帮助开发者更好的分离程序逻辑和页面显示. 3.smarty运行原理 模板文件,就是一个显示数据的模板,其中需要显示的数据用占位符代替. smarty运行时,会读取模板文件,将模板文件中的占位符替换成真正的数据,并输出一个处理后的php文件,交由服务器运行. 二.自己写一个smarty模板 为了更好的理解

Smarty模板引擎

Smarty模板引擎是一个完全由PHP程序写出来的模板引擎,优点如下: 速度:Smarty模板引擎相比其他的模板引擎速度更快 继承技术:在Smarty里面可以定义一个父模板,让子模板来继承父模板 缓存技术:可以让一个不怎么变化但是偶尔会变化的页面缓存起来.下一次客户端请求的时候直接将缓存文件给它

smarty模板引擎基础(二)

smarty模板引擎所需文件夹共可分为存放页面缓存的(cache).存放配置文件的(configs).存放模板扩充插件的(plugins).存放模板文件的(templates).存放编译后的模板文件的(templates_c).存放后端程序代码的(main); 一.configs文件夹:即保存一些与页面配置有关的相关代码,可以用[]来进行模块分类 ,以conf格式保存,可用记事本打开查询,在页面中的调用指令为 <{config_load file='文件名' section="模块名&qu

编写一个非常简单而且山寨的smarty模板引擎

PHP的正则表达式今天就结束了,遥想几年前初次接触的时候,感觉这玩意真心玩不转啊,而时至今日,感觉这也没有什么难以理解的,确实还是有很大进步的,尤其是对smarty模板引擎有了一个更为清晰的认识.正则表达式学到最后,总是会抛出这个编写一个山寨的smarty模板引擎的话题出来练练手,今天就在大师的指导下,编写了这么一个山寨smarty,作为这次复习正则的一个句点吧. <?php  class template{ //存储模板引擎源文件目录 private $templateDir; //编译后的文

(5) PHP 随笔---Smarty模板引擎 使用成熟的Smarty模板 05

◇Smarty模板引擎流程图,如下: ◇使用Smarty使得程序的速度有略微的降低了. ◇如何使用Smarty,步骤如下: ◇Smarty里的核心资源都放在libs文件夹中了.直接使用libs就好了. ◇把libs文件夹放到当前开发目录下,然后利用  include "./lib/Smarty.class.php";  将文件引用. ◇接下来实例化Smarty对象即可. ◇新建一个模板文件夹,取名为templates,用来存放模板文件夹. ◇新建一个编译文件夹,取名为templates

ThinkPHP整合Smarty模板引擎的使用以及查询方法汇总

其实说到整合smarty我们根本就没有作什么,要做的主要还是对于模板分配各种变量的使用,这才是重点,其次还有一些配置信息要自己去填写;先说一下配置,同样的,在主目录的common下面的config文件,把配置信息写入里面就可以了,其中主要有下面一下的配置信息. 'TMPL_ENGINE_TYPE'      =>  'Smarty', //'TMPL_L_DELIM'          =>  '<{',            // 模板引擎普通标签开始标记 //'TMPL_R_DELI

PHP 自定义 Smarty 模板引擎类 高洛峰 细说PHP

smarty模板引擎类简单工作原理 利用Smarty 模板引擎类对模板文件中的变量进行编译,编译过程其实就是利用正则表达式翻译成PHP文件.例如 模板文件中{$title} 利用正则表达式找到并替换成  <?php echo $this->vars['title'];?> 自定义 Smarty 模板引擎类 smarty.class.php页面 <?php /*  * 自定义Smarty模板引擎类  */         class Smarty{             priva