thinkphp 3.2 加载第三方库 第三方命名空间库

Posted 激情@人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 怎么区分? 会加载冲突吗?

 















以上是关于thinkphp 3.2 加载第三方库 第三方命名空间库的主要内容,如果未能解决你的问题,请参考以下文章

Thinkphp 5 怎么在控制器引入thinkphp\vendor 的第三方扩展

thinkphp5 extend扩展库放哪里,该怎么new

thinkphp5 extend扩展库放哪里,该怎么new

thinkphp 导入微信小程序加密解密库

thinkphp 3.2,引入第三方类库的粗略记录

thinkphp5 自动加载的类 怎么使用