本篇文章主要介紹了ThinkPHP實作靜態快取和動態快取範例程式碼,具有一定的參考價值,有興趣的小夥伴們可以參考一下
靜態快取
要使用靜態快取功能,需要開啟HTML_CACHE_ON參數,並且使用HTML_CACHE_RULES配置參數設定靜態快取規則檔。
定義靜態規則
1 2 3 4 5 6 7 8 9 |
|
#靜態快取檔案的根目錄在HTML_PATH定義的路徑下面,並且只有定義了靜態規則的操作才會進行靜態快取。並且靜態快取支援不同的儲存類型。靜態快取僅在GET請求下面有效。
靜態位址
全域的運算靜態規則
1 |
|
定義全域的控制器靜態規則
1 |
|
定義某個控制器的操作的靜態規則//定義Blog控制器的read操作進行靜態快取
1 |
|
定義全域的靜態快取規則
1 |
|
靜態規則
靜態規則是用來定義要產生的靜態文件的名稱,靜態規則的定義要確保不會衝突。
使用系統變數
1 2 3 |
|
使用框架自訂的變數
複製程式碼 程式碼如下:
{:module}/{:controller}_{:action}//{:module} 、{:controller}和{:action}分別表示目前模組名稱、控制器名稱和操作名稱。
使用_GET變數
1 |
|
直接使用函數
1 |
|
#混合定義
1 2 |
|
動態快取
[S方法資料快取]
快取初始化
1 |
|
系統目前已經支援的快取類型包括:Apachenote、Apc、Db、Eaccelerator、File、Memcache、Redis、Shmop、Sqlite、Wincache和Xcache。如果S方法不傳入type參數初始化的話,則讀取設定檔中設定的DATA_CACHE_TYPE參數值作為預設類型。同樣的道理,prefix參數如果沒有傳入會讀取設定檔的DATA_CACHE_PREFIX參數值,expire參數沒有傳入則讀取DATA_CACHE_TIME設定值作為預設。
對於全域的快取方式,一般我們建議加入prefix(快取前綴)參數用來區分不同的應用,以免混淆。
設定快取
資料快取可以支援快取佇列,簡單的說法就是可以限制快取的數量,只需要在初始化的時候指定length參數。
1 2 3 4 |
|
讀取快取
1 |
|
刪除快取
1 |
|
注意:使用每個快取時,需要ThinkPHP加載對應的驅動文件,並設定對應的配置。
使用實例
1 2 3 4 5 6 7 8 9 10 11 |
|
#[快速快取]
系統也提供了一個快速快取方法F可以用來更快的操作,但是,F方法沒有有效期,F方法可以支援不同的儲存類型,如果是檔案類型的話,預設保存在DATA_PATH目錄下面。
快速快取Data資料
1 2 3 |
|
取得快取資料
1 |
|
#刪除快取資料
1 |
|
[查詢快取]
查詢快取功能支援所有的資料庫,並且支援所有的快取方式和有效期限。
在使用查詢快取的時候,只需要呼叫Model類別的cache方法。
1 |
|
如果使用了cache(true),則在查詢的同時會根據當前的查詢條件等資訊生成一個帶有唯一識別的查詢緩存,如果指定了key的話,則直接產生名稱為key的查詢緩存。
1 |
|
預設為快取方式採用DATA_CACHE_TYPE參數設定的快取方式(系統預設值為File表示採用檔案方式快取),快取有效期限是DATA_CACHE_TIME參數設定的時間,也可以單獨制定查詢快取的快取方式和有效期限。
1 |
|
如果指定了查詢快取的key的話,則可以在外部透過S方法直接取得查詢快取的內容。
1 |
|
除了select方法之外,查詢快取還支援find和getField方法,以及他們的衍生方法(包括統計查詢和動態查詢方法)。
1 |
|
本文主要來自官方文檔,如有問題可參見ThinkPHP3.2官方文檔-快取
#以上就是本文的全部內容,希望對大家的學習有所幫助。
相關推薦:
PHPMyAdmin匯入時提示檔案大小超出PHP限制的解決方法_javascript技巧
PHP 和NodeJs開發的應用如何共用Session_node.js
#
以上是ThinkPHP實作靜態快取和動態快取的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!