キャッシュ メカニズムが 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);
PHP
では、 を定義するだけで済みます
関数名は insert_custom 補足名です。返される値は assign() メソッドで渡す必要はなく、テンプレート ページ内で {insert name='custom Supplementary name'} として呼び出すことができます。キャッシュの影響を受けず、リアルタイムで更新します
さて、smarty の 3 つのキャッシュ方法すべての説明が終わりました。興味のある方は、自分でさまざまな効果を試してみてください。