【问题标题】:Class 'GuzzleHttp\Client' not found Converage Api未找到“GuzzleHttp\Client”类 Converage Api
【发布时间】:2017-11-29 23:19:54
【问题描述】:

致命错误:在第 123 行的 ConvergeApi.php 中找不到类“GuzzleHttp\Client”

从以下位置下载并安装代码 https://github.com/markroland/converge-api-php

CentOS 7 PHP 5.4.16 (cli)(构建时间:2016 年 11 月 6 日 00:29:02) 版权所有 (c) 1997-2013 PHP 集团 Zend Engine v2.4.0,版权所有 (c) 1998-2013 Zend Technologies

已安装的作曲家

现在我只是想让示例正常工作。

机器干净,全新安装 我遵循了 StackOverflow 上发布的各种示例和建议。 有任何想法吗。 完整的代码在上面的链接中。

【问题讨论】:

  • 你有没有安装作曲家,而不是作曲家更新所有文件自动生成
  • composer-dump-autoload -o
  • 我已经从 php 5.4 更新到 php 7.1
  • 我已经从 php 5.4 更新到 php 7.1。运行 'composer dump-autoload -o' 运行示例 'ccsales.php' 得到以下错误“致命错误:未捕获的错误:在 ConvergeApi.php 中找不到类 'GuzzleHttp\Client':123 堆栈跟踪:#0 ConvergeApi.php( 153): markroland\Converge\ConvergeApi->httpRequest('ccsale', Array) #1 ConvergeApi.php(254): markroland\Converge\ConvergeApi->sendRequest('ccsale', Array) #2 ccsale.php(18) : markroland\Converge\ConvergeApi->ccsale(Array) #3 {main} 在第 123 行的 ConvergeApi.php 中抛出"
  • “composer dump-autoload -o”的输出是生成优化的自动加载文件

标签: php composer-php


【解决方案1】:

您可以执行以下步骤来执行您的代码:

  1. 转到composer.json所在的项目目录

  2. 使用composer install命令安装依赖项

converge-api-php> composer install

composer install 命令 - 解析 composer.json 文件并在供应商目录中下载所需的依赖项

  1. 现在您可以在项目目录中看到一个名为 vendor 的新目录
  2. 这个vendor 目录包含一个文件autoload.php,我们需要包含这个文件才能自动加载任何类依赖项(例如:GuzzleHttp\Client
  3. cd 进入converge-api-php\examples\ccsale.php 文件并在顶部要求vendor/autoload.php 文件

// inside examples\ccsale.php require(__DIR__.'./../vendor/autoload.php');

现在尝试执行examples\ccsale.php文件。

此外,您还可以使用以下命令执行您的 php-unit 测试用例:

converge-api-php$ ./vendor/bin/phpunit ./tests/ConvergeApiTest.php

我希望这会有所帮助。

【讨论】:

  • 这帮助并推动了我前进。现在,我得到 ConvergeApi->ccsale Response: Array ( [errorCode] => 4025 [errorName] => Invalid Credentials [errorMessage] => 授权请求中提供的凭据无效。)。我的 ssl 证书有问题吗?
  • 是的,现在问题在于创建 ConvergeApi 实例时传递的凭据信息。$PaymentProcessor = new \markroland\Converge\ConvergeApi('YOUR_CONVERGE_MERCHANTID', 'YOUR_CONVERGE_USERID', 'YOUR_CONVERGE_PIN', false ) ;
  • @BrianErickson,如果这有帮助,请接受答案。
【解决方案2】:

转到你的作曲家导演并打开 CMD 命令输入这一行,

例如:-

C:\Windows\system32>composer      //first line 

C:\Windows\system32> cd D:\filedir

D:\filedir>composer update    // enter updating  composer 

【讨论】:

  • 我使用的是 Linux 而不是 windows
  • 请分享更多细节。是什么让您认为给定的命令可以解决问题?
【解决方案3】:

你没有使用vendor/autoload.php :) 你评论了它。

您需要做的就是取消注释以下行:

require dirname(__DIR__) . '/vendor/autoload.php'; 

这是位于您的示例文件夹中的文件的一部分。

确保在尝试创建任何 GuzzleHttpClient 之前加载它。

【讨论】:

    猜你喜欢
    • 2019-08-29
    • 2017-04-08
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 2015-09-22
    • 2019-01-23
    • 2020-04-22
    • 1970-01-01
    相关资源
    最近更新 更多