Php şablon önbelleğe tasarım

1 Cevap php

Benim app tasarım önbelleğe eklemek istiyorum. Yeni başlayanlar için önbelleğe alma şablonlar.

Ben şimdiye kadar kullanmış tasarımı çok modüler. Ben herkes için bir ORM olusturdum

benim tablolar ve her tablo karşılık gelen sınıfı ile temsil edilmektedir.

Tüm istekler uygun webmethod işlevlerine yolları onları bir kontrolör tarafından işlenir.

Ben UI parçalar işlemek için bir şablon sınıfı kullanıyorum.

Ne önbelleğe alma için aklınızda ile önbelleğe alma işlemek için ayrı bir önbellek sınıfın uygulamalarını içerir

dosyalar, apc veya memcache mağaza ya esneklik. Şu anda dosya önbelleği ile test ediyorum.

Bazı düşünceler

  1. Ben Şablon sınıfında önbelleğe sürümleri için kontrol mantığını veya içermelidir

Gelen istekleri ve hangi işlemek webMethods'ın de sonunda Şablon sınıf aramak.

Birinci durumda, her şey ben şablon sınıfı geçmek daha fazla bir şey değiştirmek zorunda olmayacak gibi oldukça basit

ekstra bir argüman (önbellek veya yüklemek için olsun).

İkinci durumda ise, ben geri dönüşü hemen bulundu WebMethod ve eğer bir önbelleğe alınmış sürümü için kontrol düşünüyorum. Mantık şablonunu (ilk vaka senaryosu) ulaşana kadar bu tüm işlem bitmiş kurtaracak.

Hem senaryolar, ancak olarak getiriyor geçersiz önbelleklerini doğru bir mekanizma güveniyor

  1. Önbelleklerini geçersiz

    Onu görmek (ve serbestçe giriş ekleyebilirsiniz) bir şablon önbelleğe alınmış dosya olarak, eğer geçersiz olur:

    a. son set ulaşılır.

    b. şablon dosyası kendisi güncellenir (yeni bir satır eklerken geliştirici tarafından yani)

    c. istek değişiklikleri işler webmethod (yani geliştirici ekler / kodunda bir şey siler)

    d. db gelen ve şablon dosyasında biten içeriği değiştirilmiş

    I am thinking of storing a json encoded array inside the cached file. The first value will be the expiration timestamp of the cache. The second value will be the modification time of the php file with the code handling the request (to cope with option c above) The third will be the content itself

    Ben düşünüyorum doğrulama işlemi, yukarıdaki senaryolar göre şudur:

    a. (Dizide saklanan) önbelleğe alınan dosyanın son ulaşıldığında, önbellek dosyasını silin

    b. önbelleğe alınan dosyanın mod zaman şablonun iskelet dosyası mod kez daha küçükse, önbelleğe alınmış dosyayı silmek

    c. php dosyasının mod zaman önbellekte depolanan olandan greated ise, önbelleğe alınmış dosyasını silin.

    d. This is tricky. In the ORM implementation I ahve added event handlers (which fire when adding, updating, deleting objects). I could delete the cache file every time an object thatprovides content to the template, is modified.

    Sorun her şema nesneye correpond dosyaları önbelleğe takip nasıl.

    Bu örnek almak, bir kullanıcı kendi shortprofile sayfası ve tam bir profil sayfası (2) şablonları var

    Bu şablonlar önbelleğe alınabilir. Şimdi, kullanıcının kendi profilini değiştirir, her zaman, olay işleyicisi bilmek gerekir hangi

    Bu dosyalar silinebilir böylece şablonlar veya önbelleğe alınmış dosyaları, kullanıcı karşılık gelmektedir. Ben db saklayın olabilir ama ben

    beter bir yaklaşım arıyor

1 Cevap

Bakabilirsiniz Zend_Cache:

Bu, aralarında APC ve memcached, önbelleğe alma sistemleri bir dizi ile kullanım için backends sağlar. Ayrıca vb tam sayfa ve kısmi sayfa önbelleğe alma, hem de işlev çağrısı önbelleğe sağlar