zoukankan      html  css  js  c++  java
  • thinkphp 3.2 加载第三方库 第三方命名空间库

    tp 自动加载的介绍: http://document.thinkphp.cn/manual_3_2.html#autoload

    第三方库不规范库 不适用命名空间的库 可以使用import函数导入,其有三个参数,第一个文件名,第二起始导入路径,第三个后缀

    import("RBAC.AccessDecisionManager",dirname(__FILE__),".php");

    vendor函数参数和import一样  vendor("RBAC.AccessDecisionManager",dirname(__FILE__),".php");等于import("Vendor.RBAC.AccessDecisionManager",dirname(__FILE__),".php");

    阿里oss php库 是符合命名空间的库 我使用import和vendor怎么都导入不了。

    地址: https://github.com/aliyun/aliyun-oss-php-sdk?spm=a2c4g.11186623.2.9.2ab622150dWD7x 

    阿里oss库 支持composer 安装。

    需要自动加载的方法载入,

    具体如下:

    1. 下载sdk文件解压到 vendor目录新建的AliOSS目录。

    2.在使用的地方

    Vendor('AliOSS.autoload');
    $config=C('ALIOSS_CONFIG');
    try {
    $ossClient=new OSSOssClient($config['KEY_ID'],$config['KEY_SECRET'],$config['END_POINT']);
    // $ossClient = new VendorAliOSSOssClient($accessKeyId, $accessKeySecret, $endpoint);
    $bucketListInfo = $ossClient->listBuckets();
    p($bucketListInfo);
    $bucketList = $bucketListInfo->getBucketList();
    foreach($bucketList as $bucket) {
    print($bucket->getLocation() . " " . $bucket->getName() . " " . $bucket->getCreatedate() . " ");
    }
    } catch (OssException $e) {
    // echo "string";
    print $e->getMessage();
    }

    原理大概是 手动Vendor加载了sdk的自动加载文件,然后此命名空间的下的文件加载都会通过配置的加载方法自动加载。

    遗留问题: 如果两个sdk 命名空间都是OSS 怎么区分? 会加载冲突吗?

  • 相关阅读:
    程序员编程武器大盘点
    Opencv 视频转为图像序列
    C/C++ 浮点数比较问题
    C/C++ Swap without using extra variable
    C/C++ Quick Sort Algorithm
    LaTeX 插图片
    LaTeX 基本的公式符号命令
    天龙八部服务器端共享内存的设计(1/3)
    天龙八部服务器端共享内存的设计(2/3)
    天龙八部服务器端共享内存的设计(2/3)
  • 原文地址:https://www.cnblogs.com/swing07/p/9912172.html
Copyright © 2011-2022 走看看