ホームページ  >  記事  >  バックエンド開発  >  PHPファイルキャッシュsmartyテンプレートの応用の詳細説明

PHPファイルキャッシュsmartyテンプレートの応用の詳細説明

黄舟
黄舟オリジナル
2017-03-14 16:30:291254ブラウズ

1. キャッシュを使用する
smarty のキャッシュを有効にするには、キャッシュを true に設定し、cache_dir を指定するだけです。
cache_lefetime を使用して、同じページに対して複数のキャッシュを生成します。 、
displayに2番目のパラメータcache_idを追加するか、

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

などのフェッチを行います。この機能は、さまざまな$_GETをキャッシュするために使用できます


2. キャッシュをクリアします

clear_all_cache();//清除所有缓存
clear_cache('index.tpl');//清除index.tpl的缓存
clear_cache('index.tpl',cache_id);//清除指定id的缓存

3. カスタマイズを使用します キャッシュメソッド

cache_handler_funcを次のように設定しますカスタム

関数 を使用して、次のようなキャッシュ を処理します。

$smarty->cache_handler_func = "myCache";
function myCache($action, &$smarty_obj, &$cache_content, $tpl_file=null, $cache_id=null, $compile_id=null){
}

この関数は通常 $action に基づいて、キャッシュの現在の操作を決定します。


switch($action){
case "read"://读取缓存内容
case "write"://写入缓存
case "clear"://清空
}

通常は

md5($tpl_file. $cache_id) を使用します。 .$compile_id) を唯一のキャッシュ ID として使用します必要に応じて、gzcompress と gzuncompress を使用して圧縮と解凍を行うことができます

4 つ目は、キャッシュを部分的にオフにする

特定の領域 (必要なキャッシュのみ) を無効にする方法があります。いくつかのメソッド:

insert:
insert タグで使用される処理関数を定義します。関数名の形式は次のとおりです: insert_xx (array $params,
object &$smarty) ここで、xx は挿入の名前、つまり if定義された関数は insert_abc で、テンプレート内の使用方法は $params を通じて渡されます。ファイル名は次のとおりです。 insert.xx.PHP、関数の名前はsmarty_insert_aa($params,&$smarty)、xxは上記のように定義されていますregister_block:

定义一个block:smarty_block_name($params,$content, &$smarty){return $content;} //name表示区域名
注册block:$smarty->register_block('name', 'smarty_block_name', false); //第三参数false表示该区域不被缓存
模板写法:{name}内容{/name}

ブロックプラグインとして記述されています:
1) プラグイン関数を定義します: block.cacheless.php を作成し、smarty の plugins ディレクトリに配置します

block.cacheless。php の内容は次のとおりです:


<?php
function smarty_block_cacheless($param, $content, &$smarty) {
     return $content;
}
?>


2) プログラムとテンプレートの作成

サンプルプログラム: testCacheLess.php


<?php
include(&#39;Smarty.class.php&#39;);
$smarty = new Smarty;
$smarty->caching=true;
$smarty->cache_lifetime = 6;
$smarty->display(&#39;cache.tpl&#39;);
?>

使用したテンプレート:cache.tpl
已经缓存的:{$smarty.now}<br>{cacheless}
没有缓存的:{$smarty.now}{/cacheless}

以上がPHPファイルキャッシュsmartyテンプレートの応用の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。