gpt4 book ai didi

php - 如何在 laravel 项目中使用 vendor 文件夹中的类

转载 作者:可可西里 更新时间:2023-11-01 13:59:25 25 4
gpt4 key购买 nike

我正在尝试从供应商文件夹中包含 guzzle http 客户端并使用 composer。到目前为止,这是我尝试过的。

guzzle http 客户端文件的位置 vendor/guzzle/guzzle/src/Guzzle/Http/Client.php

在我包含的 composer.json 文件中

"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"files":["vendor/guzzle/guzzle/src/Guzzle/Http/Client.php"],
"psr-4": {
"App\\": "app/"
}
},

我运行了命令 composer dumpautoload

在我的 Controller 中,我试图调用这样的 api 端点

use GuzzleHttp\Client;
$client = new Client(); // this line gives error
$res = $client->get('https://api.fixer.io/latest?symbols=CZK,EURO');

错误是 Class 'GuzzleHttp\Client' not found

我在这里缺少什么,请帮助我。谢谢。

为了更好的文件结构,这里是文件位置的屏幕截图 enter image description here

最佳答案

简短版本:您正在尝试实例化一个不存在的类。实例化正确的类,一切就绪。

长版本:您不需要对 composer.json 做任何花哨的事情来让 Guzzle 工作。 Guzzle 遵守 PSR 自动加载标准,这意味着只要 Guzzle 通过 Composer 引入,您就可以实例化 Guzzle 类,而不必担心自动加载。

根据你提到的文件路径,听起来是like you're using Guzzle 3 .具体看the class you're trying to include

namespace Guzzle\Http;
/*...*/
class Client extends AbstractHasDispatcher implements ClientInterface
{
/*...*/
}

Guzzle 3 中的 guzzle 客户端类不是 GuzzleHttp\Client。它的名称是 Guzzle\Http\Client。所以试试吧

$client = new \Guzzle\Http\Client;

use Guzzle\Http\Client;
$client = new Client;

您应该准备就绪。

关于php - 如何在 laravel 项目中使用 vendor 文件夹中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48012987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com