2010-03-04 118 views
1

我想在我的應用程序設計中包含緩存。爲初學者提供緩存模板。PHP模板緩存設計

我迄今使用的設計非常模塊化。我爲所有的表創建了一個ORM實現

我的表和每個表都由相應的類表示。

所有請求都由一個控制器處理,該控制器將它們路由到相應的webmethod函數。

我正在使用模板類來處理UI部件。

我心目中緩存包括一個獨立的緩存類用於處理高速緩存與

靈活性無論是存儲在文件中,APC或內存緩存的實現。現在我正在使用文件緩存進行測試。

的幾點思考

  1. 我應該包括檢查在模板類緩存版本或者在處理傳入的請求,並最終調用模板類的webMethods

的邏輯。

在第一種情況下,事情是因爲我不會有任何改變更很簡單比通過模板類

一個額外的參數(無論是從緩存中加載與否)。

然而,在第二種情況下,我正在考慮立即在webmethod中檢查緩存版本,如果找到了它,就返回它。這將保存所有處理完成,直到邏輯到達模板(第一個案例senario)。

兩個senarios然而,依賴於無效的高速緩存的準確機制,這使以

  • 無效緩存

    正如我看到它(和可以添加您的輸入自由)模板緩存文件,在以下情況下變爲無效:

    a。達到期滿集合。

    b。模板文件本身被更新(即,當添加新行時由開發者)

    c。處理請求變更的webmethod(即開發人員在代碼中添加/刪除某些內容)

    d。內容來自數據庫和結尾在模板文件被修改

    我想在緩存文件內存儲一個json編碼數組。 第一個值將是緩存的到期時間戳。 第二個值將是php文件的代碼處理請求的修改時間(以應對上面的選項c) 第三個將是內容本身

    我正在考慮驗證過程,根據上述senarios,是:

    a。如果達到緩存文件(存儲在陣列中)到期,請刪除緩存文件

    b。如果緩存文件的mod時間小於模板的骨架文件mod時間,請刪除緩存的文件。如果php文件的mod時間大於緩存中存儲的時間,請刪除緩存的文件。 d)。這很棘手。在ORM實現中,我添加了事件處理程序(在添加,更新,刪除對象時觸發)。 每當向內容提供模板的對象被修改時,我都可以刪除緩存文件。

    問題是如何跟蹤哪些緩存的文件與每個模式對象相對應。

    拿這個例子中,用戶有他shortprofile頁和完整的個人資料頁面(2個模板)

    這些模板可以被緩存。現在,每次用戶修改其個人資料時,事件處理程序都需要知道哪些模板或緩存文件對應於用戶,以便可以刪除這些文件。我可以將它們存儲在數據庫中,但我

    尋找尤爲明顯辦法

  • 回答

    0

    看一看Zend_Cache

    它提供後端以用於許多緩存系統,其中包括APC和memcached。它還提供完整頁面和部分頁面緩存,以及函數調用緩存等。

    +0

    感謝您的輸入。我會看看他們。但是,我對這個概念背後的邏輯思想很感興趣 – Thomas 2010-03-04 13:35:16