本文實例講述了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() |
下面是一個典型的緩存驅動類定義:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
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 , $value , $expire = null) { // 設置緩存 } /** * 刪除緩存 * @access public * @param string $name 緩存變量名 * @return boolean */ public function rm( $name ) { // 刪除名稱為name的緩存 } /** * 清除緩存 * @access public * @return boolean */ public function clear() { // 清空緩存 } } |
注意:緩存驅動的有效期參數約定,如果設置為0 則表示永久緩存。
如果要讓緩存驅動支持緩存隊列功能,需要在緩存接口的set操作方法設置成功后添加如下代碼:
1
2
3
4
|
if ( $this ->options[ 'length' ]>0) { // 記錄緩存隊列 $this ->queue( $name ); } |
要配置當前默認的緩存驅動類型可以使用CACHE_TYPE參數,例如:
1
|
'CACHE_TYPE' => 'test' |
希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。
原文鏈接:https://blog.csdn.net/qq_42176520/article/details/81071846