分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

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

发布时间:2023-09-06 02:21责任编辑:苏小强关键词:thinkphp

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved