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 怎么区分? 会加载冲突吗?

  • 相关阅读:
    42. Trapping Rain Water
    223. Rectangle Area
    645. Set Mismatch
    541. Reverse String II
    675. Cut Off Trees for Golf Event
    安装 VsCode 插件安装以及配置
    向上取整 向下取整 四舍五入 产生100以内随机数
    JS 判断是否为数字 数字型特殊值
    移动端初始配置,兼容不同浏览器的渲染内核
    Flex移动布局中单行和双行布局的区别以及使用
  • 原文地址:https://www.cnblogs.com/swing07/p/9912172.html
Copyright © 2011-2022 走看看