1. 程式人生 > 程式設計 >Thinkphp 框架擴充套件之驅動擴充套件例項分析

Thinkphp 框架擴充套件之驅動擴充套件例項分析

本文例項講述了Thinkphp 框架擴充套件之驅動擴充套件。分享給大家供大家參考,具體如下:

每個類庫都可以設計自己的驅動,因此3.2版本的驅動目錄沒有獨立出來,而是放到各個類庫的名稱空間下面,例如:Think\Log類的驅動放到 Think\Log\Driver 名稱空間下面,Think\Db類的驅動放到了 Think\Db\Driver 名稱空間下面。

當然,這只是建議的位置,你完全可以根據專案的需要,把自己的驅動獨立存放,例如: Home\Driver\Cache\Sae.class.php 則是一種把Cache驅動獨立存放的方式(內建的核心類庫都支援給驅動指定單獨的名稱空間)。

快取驅動

快取驅動預設位於Think\Cache\Driver名稱空間下面,目前已經提供了包括APC、Db、Memcache、Shmop、Sqlite、Redis、Eaccelerator和Xcache快取方式的驅動擴充套件,快取驅動必須繼承Think\Cache類,並實現下面的驅動介面:

方法說明 介面方法
架構方法 __construct($options='')
讀取快取 get($name)
寫入快取 set($name,$value,$expire=null)
刪除快取 rm($name)
清空快取 clear()

下面是一個典型的快取驅動類定義:

namespace Think\Cache\Driver;
use Think\Cache;
/**
 * Test快取驅動
 */
class Test extends Cache {
  /**
   * 讀取快取
   * @access public
   * @param string $name 快取變數名
   * @return mixed
   */
   public function get($name) {
    // 獲取名稱為name的快取
   }
  /**
   * 寫入快取
   * @access public
   * @param string $name 快取變數名
   * @param mixed $value 儲存資料
   * @param integer $expire 有效時間(秒)
   * @return boolean
   */
   public function set($name,$expire = null) {
    // 設定快取
   }
  /**
   * 刪除快取
   * @access public
   * @param string $name 快取變數名
   * @return boolean
   */
   public function rm($name) {
    // 刪除名稱為name的快取
   }
 
  /**
   * 清除快取
   * @access public
   * @return boolean
   */
  public function clear() {
    // 清空快取
  }
}

注意:快取驅動的有效期引數約定,如果設定為0 則表示永久快取。

如果要讓快取驅動支援快取佇列功能,需要在快取介面的set操作方法設定成功後新增如下程式碼:

if($this->options['length']>0) {
    // 記錄快取佇列
    $this->queue($name);
 }

要配置當前預設的快取驅動型別可以使用CACHE_TYPE引數,例如:

'CACHE_TYPE'=>'test'

更多關於thinkPHP相關內容感興趣的讀者可檢視本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術總結》。

希望本文所述對大家基於ThinkPHP框架的PHP程式設計有所幫助。