七牛云 SDK for Codeigniter

本文详细介绍了如何将七牛云的PHP SDK集成到CodeIgniter框架中,包括必要的目录结构调整、自定义自动加载器实现及使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原帖地址:https://www.zzzzy.com/201605094039.html


因为七牛云的 SDK 用了命名空间等高级的很少接触到的货,所以对于我们这种菜逼来说。挺折腾的。
首先,因为没有为 Codeigniter 定制,所以把SDK 放到 libraries 目录还不行,还需要再写几个文件来处理。

制作流程:


1、将 SDK目录php-sdk-7.0.7/src下的 Qiniu 文件夹复制粘贴到 libraries;


2、在 Qiniu 文件夹下新建文件名为Autoloader.php的文件,即Qiniu/Autoloader.php,这一步很关键:
Autoloader.php

<?php

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的,这个流弊啊。基本能用了。


3、在 libraries 目录下新建文件为 Qiniu.php,代码如下:

<?php

require 'Qiniu/Autoloader.php';

class Qiniu {

    public function __construct() {
        Qiniu\Autoloader::register();
        require 'Qiniu/functions.php';
    }
}


4、使用方式基本和官方相同,只不过因为是后加载的文件,所以无法使用 use 命名空间,所以必须输入全名(new Qiniu\Storage\BucketManager),代码如下:

$this->load->library('Qiniu');

$auth = new Qiniu\Auth($accessKey, $secretKey);
$bucketMgr = new Qiniu\Storage\BucketManager($auth);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值