接連三篇文章都是關於七牛雲的,呵呵。感受我都幫他們作了不小推廣了哈。php
首發於:https://www.skiy.net/201605094039.htmlhtml
由於七牛雲的 SDK 用了命名空間等高級的不多接觸到的貨,因此對於咱們這種菜逼來講。挺折騰的。
首先,由於沒有爲 Codeigniter 定製,因此把SDK 放到 libraries 目錄還不行,還須要再寫幾個文件來處理。redis
製做流程:sublime-text
一、將 SDK目錄php-sdk-7.0.7/src下的 Qiniu 文件夾複製粘貼到 libraries;
二、在 Qiniu 文件夾下新建文件名爲Autoloader.php的文件,即 Qiniu/Autoloader.php,這一步很關鍵:
Autoloader.phpui
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
|
<
?
php
/**
*
* Autoloader.php
* @author : Skiychan <dev@skiy.net>
* @link : https://www.skiy.net
* @created : 5/7/16
* @modified:
* @version : 0.0.1
* @doc : https://www.skiy.net/201605094039.html
*/
namespace
Qiniu
;
class
Autoloader
{
private
$
directory
;
private
$
prefix
;
private
$
prefixLength
;
public
function
__construct
(
$
baseDirectory
=
__DIR__
)
{
$
this
->
directory
=
$
baseDirectory
;
$
this
->
prefix
=
__NAMESPACE__
.
'\\'
;
$
this
->
prefixLength
=
strlen
(
$
this
->
prefix
)
;
}
public
function
autoload
(
$
class
)
{
if
(
0
===
strpos
(
$
class
,
$
this
->
prefix
)
)
{
$
parts
=
explode
(
'\\'
,
substr
(
$
class
,
$
this
->
prefixLength
)
)
;
$
filepath
=
$
this
->
directory
.
DIRECTORY
_SEPARATOR
.
implode
(
DIRECTORY_SEPARATOR
,
$
parts
)
.
'.php'
;
if
(
is_file
(
$
filepath
)
)
{
require
$
filepath
;
}
}
}
public
static
function
register
(
)
{
spl_autoload_register
(
array
(
new
self
(
)
,
'autoload'
)
)
;
}
}
|
上面這一段代碼幾乎照搬了Predis的,這個流弊啊。基本能用了。this
三、在 libraries 目錄下新建文件爲 Qiniu.php,代碼以下:spa
四、使用方式基本和官方相同,只不過由於是後加載的文件,因此沒法使用 use 命名空間,因此必須輸入全名(new Qiniu\Storage\BucketManager),代碼以下:.net