Ben değişkenler PHP önbelleğe içeriği nasıl geçecek olabilir?

3 Cevap php

Esasen ben bir nesnenin yöntemi ile işlenecek diğer bazı HTML dışarı çağıran bir PHP sayfası var. Bu şuna benzer:

MY PHP SAYFA:

// some content...

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

// some content...

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

İlk yöntem çağrısı önbelleğe, ama ben sayfa konumu dayalı biraz farklı göstermek için renderSomeHTML () ihtiyaç vardır. Ben $ GLOBALS geçerek çalıştı, ama değeri değişmez, bu yüzden önbelleğe oluyor varsayarak yaşıyorum.

Bu yöntemle veya önbelleğe değil bir tartışmayı geçirmeden olmadan mümkün değil mi? Herhangi bir yardım takdir edilmektedir. Bu benim uygulama değil - Magento.

Edit:

Bu Magento olduğunu ve memcached kullanıyor görünüyor. I renderSomeHTML () üzerinden bir argüman geçmeye çalıştı, ama ben işlenecek dahil PHP func_get_args () kullandığınızda, ne çıkar ben içine ne koymak değildir.

Edit:

Daha fazla satır aşağı ben aynı içeriği çekti farklı bir yöntem çağırma ve önbelleğe alma kapalı bir argüman ileterek önbelleği "geçersiz" başardı. Yardımlarınız için teşekkürler herkese.

3 Cevap

Açıkçası, bunu yapamazsınız. Önbelleğe bütün mesele önbelleğe 'şey' değişecek olmasıdır. Yani ya:

  • Bir parametre sağlamak
  • önbelleğe aviod
  • Farklı bir parametre ayarlandığında önbelleği geçersiz

Bazı dinamik bağlama desteklemek - Veya, önbellek mekanizmasını kendinizi yeniden.

Chaching farklı çerçeveler tarafından farklı ele alınır, bu yüzden biraz daha bilgi ile bize yardım etmek istiyorum. Yerine kullanarak bir parametre olarak bu geçebileceği Ama ben de merak ediyorum $GLOBALS.

$this->renderSomeHTML(true);

Sizin soru belirsiz görünüyor, ancak önbelleğe alma hemen hemen anlamına gelen 'biz tekrar hesaplamak zorunda değilsiniz saklanır'. Eğer içerik farklılık istiyorsanız, daha fazla sonuçlarını önbelleğe ve bir geri göndermek için doğru önbelleğe nesneyi almak gerekir.

Daha iyi bir cevap vermek için daha fazla bilgiye ihtiyacımız var. Ne Smarty, belgeyi önbelleğe? Ve siz "sayfasında konumu" ile ne demek istiyorsun? 'It' nedir?