ホームページ > バックエンド開発 > PHPチュートリアル > Smarty カスタム実装のローカル非キャッシュに関連する問題

Smarty カスタム実装のローカル非キャッシュに関連する問題

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 13:02:13
オリジナル
875 人が閲覧しました

Smarty は、ローカルの非キャッシュ問題をカスタマイズします
プラグイン ブロック メソッドを使用します

Smarty/plugins ディレクトリに次の内容のファイル block.nocache.php を作成します:



関数smarty_block_nocache($param, $content, $smarty)
{
$ contentを返します。 }
?>

テンプレート内 (smarty は正常に構成されています):

{nocache}
キャッシュされないコンテンツ (例: {$smarty.now}
) {/nocache}

上記の構成によれば、nocache ブロックに含まれるコンテンツは随時更新される必要があります
mvc モードで使用すると時々更新できないのはなぜですか?

------最善の解決策----------------------smarty にインサートがあることを覚えています。動的読み込み、キャッシュを使用しない


-----その他の解決策---------1. プラグイン形式

関数の名前を指定します (例: nocache)。次に、プラグイン ファイルに移動してブロック関数を作成します。 (./plugins/block.nocache.php) ファイルに名前を付けるときは、カスタム関数の要件に従う必要があります。キャッシュが生成されないように、この関数で各リクエストのコンテンツの一部を表示する必要があります:


関数 Smarty_block_nocache($args, $content){

$content を返します;}

?>

​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​Smarty のすべてのプラグインはデフォルトでキャッシュされます。したがって、このファイルもキャッシュされます。この時点で、構成ファイル Smarty_Compiler.class.php を変更する必要があります。ファイルの 712 行目は次のようになります。「 $this->_plugins['block'][$tag_command] = array($plugin_func, null、null、null、true); "すべてのプラグインが自動的にキャッシュされないように、括弧内の true を false に変更します。すべてのプラグインを非キャッシュ状態に変更したくない場合は、私が作成したファイル block.nocache.php をキャッシュしないようにするだけです。

if($tag_command==nocache){

$this->_plugins['block'][$tag_command] = array($plugin_func, null, null, null, false);}

それ以外の場合{

$this->_plugins['block'][$tag_command] = array($plugin_func, null, null, null, true);


これで問題は解決しました。皆さん、ありがとう

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート