ベンダーフォルダーからcomposerを使用してguzzlehttpクライアントを含めようとしています。これが私がこれまでに試したことです。
guzzlehttpクライアントファイルの場所 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
。
私のコントローラーでは、このような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
私がここで欠けているもの、私を助けてください。ありがとう。
ショートバージョン:存在しないクラスをインスタンス化しようとしています。適切なクラスをインスタンス化すると、準備が整います。
ロングバージョン:Guzzleを機能させるために、composer.jsonで特別なことをする必要はありません。Guzzleは自動ロードのPSR標準に準拠しています。つまり、Guzzleがコンポーザーを介してプルされている限り、自動ロードを気にせずにGuzzleクラスをインスタンス化できます。
あなたが言及したファイルパスに基づくと、Guzzle3を使用しているように聞こえます。含めようとしているクラスを具体的に見てください
namespace Guzzle\Http;
/*...*/
class Client extends AbstractHasDispatcher implements ClientInterface
{
/*...*/
}
Guzzle3のguzzleクライアントクラスはではありませんGuzzleHttp\Client
。その名前はGuzzle\Http\Client
です。だからどちらかを試してください
$client = new \Guzzle\Http\Client;
または
use Guzzle\Http\Client;
$client = new Client;
そして、あなたはすべて設定されている必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加