PHPテンプレートエンジンSmartyのキャッシュ使用概要

4037 ワード

ここでは、smartyキャッシュをオンおよび使用する方法、smartyキャッシュおよびsmartyのグローバルキャッシュ、部分キャッシュ、ローカルキャッシュの3つのキャッシュメカニズムをクリアする方法について分析します.
一、smartyキャッシュのオンと使用
smartyのキャッシュを開くには、smarty設定パラメータでcachingをtrueに設定し、cache_を指定します.dirでいいです.同時にcache_を設定するlefetimeパラメータは、キャッシュの生存時間(秒単位)を指定します.同じページに複数の異なるキャッシュを生成する場合は、displayまたはfetchに次のような2番目のパラメータcache_idを追加できます.

   $smarty->display('index.tpl',$my_cache_id); 
 

このプロパティは、異なる$_に使用できます.GETは異なるキャッシュを行う.二、smartyキャッシュをクリアする
smartyキャッシュをクリアするには、一般的に次の方法があります.
 
  
clear_all_cache();//
clear_cache('index.tpl');// index.tpl
clear_cache('index.tpl',cache_id);// id

三、グローバルキャッシュ
グローバルキャッシュとは、Webサイト全体のすべてのページにキャッシュページを生成することです.グローバルキャッシュを設定するには、まずsmartyのプロファイルを操作し、キャッシュを開き、キャッシュファイルディレクトリを指定し、キャッシュの生存時間を設定します.設定パラメータは次のとおりです.
 
  
$smarty->cache_dir='./cache/'; //
$smarty->caching=1;// 0、FALSE | 0 、TRUE
$smarty->cache_lifetime=3600// ( -1 )

次に、特定のphpページに対応する特定のキャッシュファイルの名前を設定します.phpページでは、次のように書くことができます.

   $smarty->display('list2.html',md5($_SERVER['REQUEST_URI']));//      URL(  ?       )  md5            
 

次の点に注意してください.
 
  
$smarty->display(' ',' ') 。

2番目のパラメータは必須ではありません.書かなければ、キャッシュファイル名はテンプレートファイル名が暗号化されたファイルです.しかし、これは、次のような難しい問題に直面します.
 
  
//www.jb51.net/article.php?id=5
//www.jb51.net/article.php?id=7

この2つのURLはそれぞれ異なる内容に対応していますが、生成されたキャッシュファイル名はarticle暗号化後の結果です.これにより、ユーザーがクエリーしたいのは異なるコンテンツであり、同じキャッシュファイルにアクセスします.したがって、補助パラメータを追加してurl(後のすべてのパラメータを含む)md 5にアクセスすることをお勧めします.
四、部分キャッシュ
一部のキャッシュとは、Webサイトのすべてのファイルではなく、一部のファイルがキャッシュファイルを生成することを指定します.部分キャッシュの本質は、実際には部分的にキャッシュされないことです.つまり、どのファイルがキャッシュを生成するかを指定するのではなく、特定のファイルがキャッシュを生成しないことを指定します.3つのファイルがあるとします.
 
  
//www.jb51.net/index.php //
//www.jb51.net/cate.php //
//www.jb51.net/article.php //

前の2つのファイルのphpファイルには、$smarty->display('に対応するテンプレートファイル名'、'キャッシュファイル名の補足部分')という文を書く必要があります.
しかし、3番目のファイルでは、displayがテンプレートを指定する前に次のコードを書くことで、キャッシュを生成する必要がないことを特に示します.
 
  
$smarty->clear_cache(' ');// $smarty->display(' ')

もちろん$smarty->display('に対応するテンプレートファイル名')は書きますが、もともとキャッシュを生成したくないので、2番目のパラメータも必要ありません.
注意:$smarty->clear_Cache()と$smarty->display()のパラメータは必ず一致する
五、ローカルキャッシュ
ローカルキャッシュとは、同じページの下にあるローカルの場所を指定してキャッシュを生成することです.実際には、キャッシュを生成するローカルを指定するのではなく、キャッシュを生成しないローカルを指定します(これは、一部のキャッシュの操作思想と似ています).まず次の例を見てみましょう.
article.phpファイルの部分は以下の通りです.
 
  

$time=time();

$smarty->assign('time',$lanmuarr);

function insert_timeget(){

return time();

}

$smarty->display('article.html');


対応テンプレートファイルarticle.htmlの部分コードは以下の通りです.
 
  

{$time}

{insert name='timeget'}


ここでは上の例について説明します.PHPでは関数名をinsert_と定義するだけです.(下線に注意)補足名をカスタマイズするカスタム関数で、返される値はassign()メソッドで渡す必要がなく、テンプレートページで{insert name='カスタム補足名'}として呼び出され、キャッシュの影響を受けずにリアルタイムでブラシされます.
また、Smartyキャッシュを使うのが気持ちが悪い場合は、カスタムキャッシュを使うこともできますが、カスタムキャッシュをどのように使うことができますか?
ここでcache_を設定する必要がありますhandler_funcは、次のようなカスタム関数を使用してキャッシュを処理します.
 
  
$smarty->cache_handler_func="myCache";

function myCache($action,&$smarty_obj,&$cache_content,$tpl_file=null,$cache_id=null,$compile_id=null){

switch($action){

case "read"://

case "write"://

case "clear"://

}

}