ホームページ > バックエンド開発 > PHPチュートリアル > Smarty キャッシュ技術をステップバイステップで教える_PHP チュートリアル

Smarty キャッシュ技術をステップバイステップで教える_PHP チュートリアル

WBOY
リリース: 2016-07-21 14:51:41
オリジナル
825 人が閲覧しました

キャッシュ メカニズムが Web サイトのサーバー負荷を効果的に軽減できることを誰もが知っているはずです。Smarty テンプレート エンジンのハイライトの 1 つは、非常に簡単なキャッシュ オペレーションを提供することです。以下でそれについて学びましょう。


まず最初に、Smarty キャッシュ のメカニズムがグローバル キャッシュ、部分キャッシュ、ローカル キャッシュの 3 つのタイプに分かれていることを知っておく必要があります。それぞれについて説明します。


1. グローバルキャッシュ


名前が示すように、グローバル キャッシュでは、Web サイト全体のすべてのページに対してキャッシュされたページが生成されます。


まず、smarty 設定ファイルを操作し、キャッシュを有効にし、キャッシュ ファイルのディレクトリを指定し、キャッシュの生存時間を設定する必要があります


$smarty->cache_dir = ‘./cache/’ //キャッシュファイルを保存するフォルダーを設定します

;


$smarty->caching = 1; //キャッシュをオンにする 0、FALSE はオフを意味し、TRUE はオンを意味します


$smarty->cache_lifetime = 3600//単位は秒です(-1を入力すると期限切れになりません)


次に、特定の php ページに移動して、それに対応する特定のキャッシュ ファイルの名前を設定する必要があります


$url=md5($_SERVER['REQUEST_URI']); // 現在のページの URL (? 以降のすべてのパラメーターを含む) を md5 で暗号化します


$smarty->display('list2.html', $url); //キャッシュファイル名を設定します


注意する必要があるのは:


$smarty->display('対応するテンプレートファイル名', 'キャッシュファイル名の補足部分') このメソッド。


2 番目のパラメータは必須ではありません。これを記述しない場合、キャッシュ ファイル名は暗号化されたテンプレート ファイルの名前になります。


しかし、これにはさらに難しい問題が発生します:


http://localhost/1.10/sm/list2.php? lan=1


http://localhost/1.10/sm/list2.php? lan=2


http://localhost/1.10/sm/list2.php? lan=3


3つのURLはそれぞれ異なる内容に対応していますが、生成されるキャッシュファイル名はいずれもlist2.htmlの暗号化結果です。


これにより、ユーザーは異なるコンテンツをクエリすることになりますが、同じキャッシュ ファイルにアクセスすることになります。


したがって、著者が推奨する md5 にアクセス URL (以降のすべてのパラメータを含む) を暗号化するための補助パラメータを追加することをお勧めします。


2. 部分キャッシュ


まず、部分キャッシュとは何かを理解してください。実際には、Web サイト上のすべてのファイルではなく、一部のファイルを指定してキャッシュ ファイルを生成することを意味します。


達成する必要がある効果を理解したので、詳しくやってみましょう


運用する前に、まずコンセプトを強調する必要があります:


部分キャッシュの本質は、実際には部分非キャッシュです。これは、キャッシュを生成するファイルを指定する代わりに、キャッシュを生成しないように特定のファイルを指定することを意味します


3 つのファイルがあると仮定します:


1.php //キャッシュが必要です


2.php //キャッシュが必要です


3.php //キャッシュは必要ありません


1.php/2.php ファイルには、引き続き $smarty->display('対応するテンプレート ファイル名', 'キャッシュ ファイル名の補足部分') メソッドを記述します。


ただし、3.php では、キャッシュを生成する必要がないことを具体的に指定する必要があります。具体的な方法は次のとおりです。

$smarty->clear_cache(‘対応するテンプレートファイル名’)//$smarty->display(‘対応するテンプレートファイル名’)の前後に記述します

もちろん、$smarty->display('対応するテンプレート ファイル名') を記述する必要があるため、キャッシュを生成したくないため、2 番目のパラメーターは必要ありません。

$smarty->clear_cache() と $smarty->display() のパラメータは一貫して記述する必要があります


3. 部分的なキャッシュ

まず、ローカル キャッシュの意味を理解しましょう。これは、同じページ内の特定のローカルな場所を指定してキャッシュを生成することです。

同様に、ここでも考え方を逆転する必要があります。

実際には、どの部分がキャッシュを生成するのかを指定するのではなく、どの部分がキャッシュを生成しないのかを指定することになります(これは部分キャッシュの動作思想に似ています)。

早速、例を挙げてみましょう

1.php

$time=time();

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

関数 insert_timeget()


{


戻り時間();


}


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


1.html


{$time}


//キャッシュをオンにした後、繰り返し更新しても変化しません


{insert name='timeget'}


//キャッシュをオンにした後、繰り返し更新すると変化します


この例を理解した後、原理を説明しましょう


PHP
では、 を定義するだけで済みます


関数名は insert_custom 補足名です。返される値は assign() メソッドで渡す必要はなく、テンプレート ページ内で {insert name='custom Supplementary name'} として呼び出すことができます。キャッシュの影響を受けず、リアルタイムで更新します


さて、smarty の 3 つのキャッシュ方法すべての説明が終わりました。興味のある方は、自分でさまざまな効果を試してみてください。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/371728.html技術記事キャッシュ メカニズムが Web サイトのサーバー負荷を効果的に軽減できることを誰もが知っているはずです。Smarty テンプレート エンジンのハイライトの 1 つは、非常にシンプルなキャッシュ オペレーションを提供することです。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート