PHP - cURL の代わりに Guzzle を使用する理由 質問する

PHP - cURL の代わりに Guzzle を使用する理由 質問する

私のアプリケーションでは、当初はさまざまな API からデータを取得するために cURL を使い始めました。今日は、同じタスクを完了するために Guzzle を使ってみました。これまでのところ、cURL と Guzzle はどちらも同じようにうまく機能しているようです。

判断するとギットハブ多くの人が Guzzle を気に入っているようですが、その理由がよくわかりません。

私の質問:

私の状況 (さまざまな API からデータを取得する) では、Guzzle を使用する方が望ましいでしょうか? Guzzle の代わりに cURL を使用すると (またはその逆)、最終的に後悔することになるでしょうか?

PHP / Laravelを使用しています。

ベストアンサー1

Guzzle を使用する理由

まず、Guzzle は http リクエストの抽象化レイヤーです。デフォルトでは cURL を使用しますが、他の任意の http クライアントを使用することもできます。

Guzzle には cURL が必要ですか?

いいえ。Guzzle は、リクエストを送信するために任意の HTTP ハンドラを使用できます。つまり、Guzzle は cURL、PHP のストリーム ラッパー、ソケット、React などの非ブロッキング ライブラリで使用できます。リクエストを送信する別の方法を使用するように HTTP ハンドラを構成するだけです。

注記:Guzzle はこれまで、HTTP リクエストの送信に cURL のみを使用してきました。cURL は素晴らしい HTTP クライアント (おそらく最高) であり、Guzzle は利用可能な場合は引き続きデフォルトで使用します。まれですが、一部の開発者はシステムに cURL をインストールしておらず、バージョン固有の問題に遭遇しています。スワップ可能な HTTP ハンドラーを許可することで、Guzzle はよりカスタマイズ可能になり、より多くの開発者のニーズに合わせて適応できるようになりました。

Laravelを使用しているので、万が一メールAPIを使用している場合は、すでにGuzzleがインストールされているはずです。Laravelの作曲家.json提案が表示されます:

"suggest": {
    ...
    "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~5.3|~6.0).",
    ...
}

もう一つの理由は、コードを再利用することです。ボグダンcURL で単純な http リクエストを実行するために必要なコードの量。Guzzle を使用すると、はるかにシンプルで、クリーンで、読みやすく、再利用できます。Http リクエストをカプセル化するサービスを作成するのは非常に簡単です。

Guzzleでは、非同期リクエストこれは、Promise を使用して JavaScript で行うのと非常によく似た方法です。

最後になりましたが、テストです。cURL を使用するよりも、API のテストやアプリのユニット テストの作成、Guzzle を使用した http リクエストのモック作成の方がはるかに簡単です。テストに関する詳細情報ここ

しかしもしあなたがやりたいだけならほんの数人単純な http リクエスト (そうではないようです) の場合、テストは気にせず、Guzzle に依存したくない場合は、cURL を使用します。

おすすめ記事