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 \OSS\OssClient($config[‘KEY_ID‘],$config[‘KEY_SECRET‘],$config[‘END_POINT‘]);
???????????// $ossClient = new Vendor\AliOSS\OssClient($accessKeyId, $accessKeySecret, $endpoint);
???????????$bucketListInfo = $ossClient->listBuckets();
???????????p($bucketListInfo);
???????????$bucketList = $bucketListInfo->getBucketList();
???????????foreach($bucketList as $bucket) {
???????????????print($bucket->getLocation() . "\t" . $bucket->getName() . "\t" . $bucket->getCreatedate() . "\n");
???????????}
???????} catch (OssException $e) {
???????????// echo "string";
???????????print $e->getMessage();
???????}
原理大概是 手动Vendor加载了sdk的自动加载文件,然后此命名空间的下的文件加载都会通过配置的加载方法自动加载。
遗留问题: 如果两个sdk 命名空间都是OSS 怎么区分? 会加载冲突吗?
thinkphp 3.2 ?加载第三方库 ?第三方命名空间库
原文地址:https://www.cnblogs.com/swing07/p/9912172.html