2008-09-17 19 views
0

私は基本的にオブジェクトのメソッドを通してレンダリングされるいくつかの他のHTMLを呼び出すPHPページを持っています。PHPでキャッシュされたコンテンツに変数を渡すにはどうすればよいですか?

MY PHPのページ:それはこのようになります

// some content... 

<?php 
    $GLOBALS["topOfThePage"] = true; 
    $this->renderSomeHTML(); 
?> 

// some content... 

<?php 
    $GLOBALS["topOfThePage"] = false; 
    $this->renderSomeHTML(); 
?> 

は、最初のメソッド呼び出しがキャッシュされているが、私はrenderSomeHTML()はページ内のその位置に基づいて、わずかに異なる表示する必要があります。私は$ GLOBALSを通過しようとしましたが、値は変更されないので、キャッシュされていると仮定しています。

メソッドで引数を渡したり、キャッシュしないと、これはできませんか?どんな助けもありがとうございます。これは私のアプリケーションではありません - Magentoです。

編集:

これは、Magentoのであり、それはmemcachedのを使用しているように見えます。私はrenderSomeHTML()で引数を渡そうとしましたが、PHPインクルードでfunc_get_args()を使ってレンダリングすると、何が出てくるのか分かりません。

編集:

さらに私は、同じコンテンツを引っ張っ異なるメソッドを呼び出して、キャッシュをオフに引数に渡すことで、キャッシュを「無効」することができたラインダウン。みんなあなたの助けをありがとう。

答えて

3

を使用して、あなたができないことを渡すことができれば私も疑問に思います。キャッシュの全体的なポイントは、キャッシュする「もの」が変更されないことです。だから、次のいずれか

  • は、パラメータを提供
  • aviodキャッシング
  • あなたは異なるパラメータに

を設定するときにキャッシュを無効または、キャッシュメカニズムを自分で書き換え - いくつかの動的バインディングをサポートするために、 。

1

チャーミングは、さまざまなフレームワークによって異なる方法で処理されるため、いくつかの情報を追加する必要があります。あなたは、パラメータとして代わりに明らかに$GLOBALS.

$this->renderSomeHTML(true); 
0

あなたの質問は不明瞭ですが、キャッシングとはかなりの意味で「保存して再度計算する必要はありません」という意味です。コンテンツを異ならせたい場合、より多くの結果をキャッシュし、正しいキャッシュされたオブジェクトを選択して戻す必要があります。

もっと良い回答を得るにはさらに詳しい情報が必要です。ドキュメントのキャッシュとは何ですか、Smarty?そして、「ページ内のその場所」とはどういう意味ですか?それは何ですか'?

関連する問題