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 加载第三方库 第三方命名空间库的主要内容,如果未能解决你的问题,请参考以下文章