Closed MarlboroCh closed 4 years ago
正常composer安装后TCloudAutoLoader.php是在vendor/tencentcloud/tencentcloud-sdk-php/TCloudAutoLoader.php,不是和vendor平级,另外依赖包GuzzleHttp应该也是在vendor目录下,就是说GuzzleHttp和tencentcloud应该是平级目录,你们现在这个包的写法很另类,麻烦参考下其他的composer包,如qiniu/php-sdk
请看一下 Composer 安装的使用说明, Composer 安装是不需用 TCloudAutoLoader 的.
通过 Composer 安装 通过 Composer 获取安装是使用 PHP SDK 的推荐方法,Composer 是 PHP 的依赖管理工具,支持您项目所需的依赖项,并将其安装到项目中。关于 Composer 详细可参考 Composer 官网 。
安装Composer: windows环境请访问Composer官网下载安装包安装。
unix环境在命令行中执行以下命令安装。
curl -sS https://getcomposer.org/installer | php
在 composer.json 的 require 结构体中加入依赖。注意这里的版本号只是举例,您可以在composer仓库上看到最新的版本号。:
"tencentcloud/tencentcloud-sdk-php": "3.0.94"
运行 composer install 下载安装 PHP SDK。
添加以下引用代码,引用方法可参考示例。
require 'vendor/autoload.php';
据当时的SDK开发者介绍,TCloudAutoLoader.php是为了照顾国内很多不会用composer的用户,他们只用源码。使用composer时是不需要这个文件的,按照readme中所说,require 'vendor/autoload.php'; 就可以了。 考虑到目前为了照顾两边而实际两边都不讨好的情况,未来可能会从二者择一,默认只有其中一种
我用composer安装后tencentcloud不是应该在vendor目录下吗,TCloudAutoLoader.php的路径不是vendor/tencentcloud/tencentcloud-sdk-php/TCloudAutoLoader.php,你确定你开头的三句路径是正确的吗? require_once(DIR.DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR.'GuzzleHttp'.DIRECTORY_SEPARATOR.'functions.php'); require_once(DIR.DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR.'GuzzleHttp'.DIRECTORY_SEPARATOR.'Psr7'.DIRECTORY_SEPARATOR.'functions.php'); require_once(DIR.DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR.'GuzzleHttp'.DIRECTORY_SEPARATOR.'Promise'.DIRECTORY_SEPARATOR.'functions.php');
反正我yii2,laravel测试都报错,Failed opening required '/.../vendor/tencentcloud/tencentcloud-sdk-php/vendor/GuzzleHttp/functions.php', DIR都不知道什么意思吗?还是说你这个安装在vendor外面,实在搞不懂,我去掉后就正常了