【小(xiǎo)編推薦】ThinkPHP3.2——靜(jìng)态緩存

2014-06-26  β₩β↓ |   發布者:梁國(guó​βγε)芳   | γ♦✔♠;  查看(kàn):3320次

Thinkphp

要(yào)使用(yòng)靜(jìng)态緩存功能(néng​©¥σ),需要(yào)開(kāi)啓HTML_CACHE_ON參數(shù),并且使用(yòng)HTML_CACHE_RULES配置參數(shù)設置靜(jìng)态緩存規則文(wé ≈n)件(jiàn) 。

雖然也(yě)可(kě)以在應用(yòng)配置文(wén)®♥®件(jiàn)中定義靜(jìng)态緩存規則♠₹,但(dàn)是(shì)建議(yì)是(shìβα)在模塊配置文(wén)件(jiàn)中為(wèi)不(bù)同的(de)模φα™♣塊定義靜(jìng)态緩存規則。

靜(jìng)态規則定義

靜(jìng)态規則的(de)定義方式如(rú)下(♠©&♣xià):

  1. 'HTML_CACHE_ON' => true, // 開(kāi)啓靜(jìng)态緩存
  2. 'HTML_CACHE_TIME' => 60, // 全局靜(jìng)态緩存有(yǒu)效期(秒(↕¥miǎo))
  3. 'HTML_FILE_SUFFIX' => '.shtml', // 設置靜(jìng)态緩存文(wén)件→★©(jiàn)後綴
  4. 'HTML_CACHE_RULES' => array( // 定義靜(jìng)态緩存規則
  5. // 定義格式1 數(shù)組方式
  6. '靜(jìng)态地(dì)址' => array('靜(jìng)态規則', '有(yǒu)效期', '附加規則'),
  7. // 定義格式2 字符串方式
  8. '靜(jìng)态地(dì)址' => '靜(jìng)态規則',
  9. )

定義格式1采用(yòng)數(shù)組方式 便于單獨為(wèi→±×₽)某個(gè)靜(jìng)态規則設置不(¥πbù)同的(de)有(yǒu)效期,定義格式2采用(yò‍✔♦•ng)字符串方式訂閱靜(jìng)态規則,同時(shí)采用✘≠(yòng)HTML_CACHE_TIME設置的(de)全局靜(jìng)态緩存有(yǒu)效期。

靜(jìng)态緩存文(wén)件(jiàn)的(de)根目錄在HTML_PATH定義的(de)路(lù)徑下(xià)面,并且隻有(yǒu☆™←)定義了(le)靜(jìng)态規則的(de)操作(zuò)才會πεφ•(huì)進行(xíng)靜(jìng)态緩存。 并且靜(jìng)态≤λ₹<緩存支持不(bù)同的(de)存儲類型。₽♦α 靜(jìng)态緩存僅在GET請(qǐng)求下(xià)∞↕面有(yǒu)效。

靜(jìng)态地(dì)址

靜(jìng)态地(dì)址包括下(xià)面幾種定義格式:×≥≥→

第一(yī)種是(shì)定義全局的(de)操作(zu σò)靜(jìng)态規則,例如(rú)定義所有(yǒu)的(de)read操作®§♦(zuò)的(de)靜(jìng)态規則為(wèi):

  1. 'read'=>array('{id}',60)

其中,{id} 表示取$_GET['id'] 為(wèi)靜(jìng)态緩存文(wén)件(jiàn)名,第二個(gè &β)參數(shù)表示緩存60秒(miǎo)。

第二種是(shì)定義全局的(de)控制(zhì)器®&πφ(qì)靜(jìng)态規則,例如(rú)定義所有(yǒu)的(d≤←≈e)User控制(zhì)器(qì)的(€¥™₽de)靜(jìng)态規則為(wèi):

  1. 'user:'=>array('User/{:action}_{id}','600')

其中,{:action} 表示當前的(de)操作(zuò)名稱

第三種是(shì)定義某個(gè)控制(zhì)器(qì)的(de)操作(‍‍zuò)的(de)靜(jìng)态規則,∏>$例如(rú),我們需要(yào)定義Blog控制(zhì)器(qì)的(de'£¶ )read操作(zuò)進行(xíng)靜(jìng)态緩存

  1. 'blog:read'=>array('{id}',0)

第四種方式是(shì)定義全局的(de)靜(jìng>¶≈•)态緩存規則,這(zhè)個(gè)屬于特殊情況下(xià)的 ↔α£(de)使用(yòng),任何模塊的(de)操作(zuò)都(dōu)$✘ε适用(yòng),例如(rú)

  1. '*'=>array('{$_SERVER.REQUEST_URI|mdβ↕♥α5}'),

表示根據當前的(de)URL進行(xíng)緩存。

靜(jìng)态規則

靜(jìng)态規則是(shì)用(yòng)于♣‌±定義要(yào)生(shēng)成的(de)靜(jìng§£™)态文(wén)件(jiàn)的(de)名稱,靜(jìng)态規則的(d×Ω><e)定義要(yào)确保不(bù)會(huì)沖突↓₽α,寫法可(kě)以包括以下(xià)情況:

1、使用(yòng)系統變量

包括 _GET_REQUEST_SERVER_SESSION_COOKIE 格式:

  1. {$_×××|function}

例如(rú):

  1. {$_GET.name}
  2. {$_SERVER.REQUEST_URI|md5}

2、使用(yòng)框架特定的(de)變量

{:module}{:controller} 和(hé){:action} 分(fēn)别表示當前模塊名、控制(zhì)器(qì)名和(hé)操作(z♣γuò)名。

例如(rú):

  1. {:module}/{:controller}_{:action}

3、使用(yòng)_GET變量

{var|function}也(yě)就(jiù)是(shì)說(shuō) {id} 其實等效于 {$_GET.id}

4、直接使用(yòng)函數(shù)

{|function} 例如(rú):

  1. {|time}

5、支持混合定義

例如(rú)我們可(kě)以定義一(yī)個(gè)靜(jì₩ ng)态規則為(wèi):

  1. '{id},{name|md5}'

在{}之外(wài)的(de)字符作(zu¥₩ò)為(wèi)字符串對(duì)待,如(rú)果包含有(yǒu)&q​¶uot;/",會(huì)自(zì)動創建目錄。

例如(rú),定義下(xià)面的(de)靜(¶Ω∏jìng)态規則:

  1. {:module}/{:action}_{id}

則會(huì)在靜(jìng)态目錄下(xià)面創建↕'$模塊名稱的(de)子(zǐ)目錄,然後寫入操作→♣$‌(zuò)名_id.shtml 文(wén★'δβ)件(jiàn)。

靜(jìng)态緩存有(yǒu)效期

單位為(wèi)秒(miǎo)。如(rú)果不(bù)定義,則會(±$↔ huì)獲取配置參數(shù)HTML_CACHE_TIME 的(de)設置值,如(rú)果定義為(wèi)0則表‌‌↔示永久緩存。

附加規則

通(tōng)常用(yòng)于對(du$•ì)靜(jìng)态規則進行(xíng)函數(shù)運算(suàn),例 λ 如(rú)

  1. 'read'=>array('Think{id},{name}','60', 'md5')

翻譯後的(de)靜(jìng)态規則是(shì) md5('Think'.$_GET['id']. ', '.$_GET['n<σame']);