PHP 愛好家の皆さん、こんにちは。 ?深夜にコーディングをしていて、PHP で HTTP リクエストと格闘していて、「これが JavaScript のフェッチと同じくらい簡単だったらなあ」と思ったことを覚えていますか?さて、コーヒーを飲んで、いくつかのエキサイティングなニュースを読む準備をしてください。FetchPHP 2.0 が登場し、PHP HTTP リクエストが十分に油を注いだマシンよりもスムーズになるからです!
これをイメージしてください: 今は 2023 年で、私はお気に入りのコーヒー ショップに座って、特大のカフェラテを飲んでいます... いや、冗談です。実際、私は家でエルデンリングのセッションに膝まで浸かっていたのですが、突然インスピレーションが湧きました。 「JavaScript のフェッチのシンプルさを PHP の世界に持ち込めたらどうだろう?」と私は考えました。そしてまさにそのようにして、FetchPHP が誕生しました。 (心配しないでください、私はそのボス戦を先に終わらせました。)
しかし、ここでインスピレーションが重要になります。それはバージョン 1.0 にとどまりません。開発者が FetchPHP を採用しているのを見て、限界をさらに押し上げることができることに気づきました。そこで、私はコーディングの洞窟 (ホーム オフィスにすぎませんでしたが、しばらくすると洞窟のように感じました) に閉じ込められ、不健康な量のエナジードリンクでエネルギーを補給し、FetchPHP 2.0 で登場しました。
このアップデートにはスイス アーミー ナイフよりも多くの機能が満載されているので、しっかりと準備してください。バージョン 2.0 の特徴は次のとおりです:
真の非同期スーパーパワー: PHP の非同期がビーチサンダルでマラソンを走ろうとしているように感じたときのことを覚えていますか?そんな日々はもう終わりました! FetchPHP 2.0 は、PHP Fibers (兄弟パッケージである Matrix のおかげ) を活用して、真のノンブロッキング同時実行性を実現します。コードにロケットブーツを与えるようなものです。私が自分で構築したパッケージである Matrix は、PHP Fiber を利用することで非同期タスク管理を簡素化します。 Matrix を使用すると、FetchPHP はこれまでにない非同期タスクを実行できます。
JavaScript 開発者は家にいるように感じてください: JavaScript 開発者が家から出たことがないように感じられる async()/await のような構文を導入しました。あまりにも馴染み深いので、PHP を書いていることを忘れてしまうかもしれません!
Fluent API for the Win: リクエストの作成が、お気に入りのバリスタのラテアートよりもスムーズになりました。 Laravel の HTTP クライアントからインスピレーションを得た、新しい流暢な API を使用してメソッドをチェーンします。とてもエレガントで、実際に自動的に記述されます!
ステロイドでのエラー処理: 新しいカスタマイズ可能な ErrorHandler を使用すると、エラーの管理はもはや悪夢ではありません。タスクをその場で一時停止、再開、再試行、またはキャンセルします。 HTTP リクエストのタイムマシンのようなものです!
Guzzle Who?: 私たちは依然として Guzzle に感謝していますが (Guzzle は内部で同期リクエストを強化しています)、FetchPHP 2.0 は物事をまったく新しいレベルに引き上げます。まるで、Guzzle をジムに連れて行き、ほうれん草を食べさせ、新しい技を教えたようなものです!
バージョン 1.0 のとき、私たちは皆、単純なリクエストを行うことに興奮していたことを覚えていますか? FetchPHP 2.0 はプロのように複雑なシナリオを処理する準備ができているので、キーボードを離さないでください。 HTTP ロジックをすべて書き直したくなるような例をいくつか見てみましょう (心配しないでください。書き換えるかどうかは判断しません):
// Async request with all the bells and whistles async(fn () => fetch() ->baseUri('https://api.coolstartup.com') ->withHeaders(['X-API-Key' => 'supersecret']) ->withBody(json_encode(['feature' => 'awesome'])) ->withProxy('tcp://localhost:8080') ->timeout(5) ->retry(3, 1000) ->post('/unicorns')) ->then(fn ($response) => processUnicornData($response->json())) ->catch(fn ($e) => logUnicornError($e));
この美しさを見てください!プロキシ、再試行、タイムアウトなどを処理しながら、すべて非同期を維持し、見栄えを良くしています。
まあ、あなたが何を考えているかはわかります。 「でも、私は Guzzle を何年も使ってきました。なぜ切り替える必要があるのでしょう?」さて、FetchPHP 2.0 が PHP HTTP クライアントの新たなヘビー級チャンピオンである理由をこれから詳しく説明するので、しっかりしてください。
ここで要点を理解するための簡単な比較を示します:
// Guzzle $promise = $client->requestAsync('GET', 'http://httpbin.org/get'); $promise->then( function ($response) { echo 'I completed! ' . $response->getBody(); }, function ($exception) { echo 'I failed! ' . $exception->getMessage(); } ); // FetchPHP // using async/await syntax async(fn () => fetch('http://httpbin.org/get')) ->then(fn ($response) => echo 'I completed! ' . $response->body()) ->catch(fn ($e) => echo 'I failed! ' . $e->getMessage()); // or directly using the ClientHandler class use Fetch\Http\ClientHandler; (new ClientHandler()) ->async() ->get('http://httpbin.org/get');
違いがわかりますか? FetchPHP は、複雑なアプリケーションに必要なパワーと柔軟性を維持しながら、最新の JavaScript の優雅さを PHP の世界にもたらします。
あなたが指揮者で、HTTP リクエストがオーケストラであると想像してください。 Guzzle を使用すると、素晴らしい仕事ができますが、一度に演奏できる楽器は 1 つまでに制限されます。 FetchPHP 2.0?それはあなたをマエストロに変え、非同期リクエストの完全な交響曲を指揮し、それぞれが完璧なハーモニーを奏でます。
FetchPHP 2.0 が、必要だと思っていなかった HTTP クライアントである理由は次のとおりです:
FetchPHP 2.0 は単なるアップデートではありません。これは、PHP での HTTP リクエストの処理方法における革命です。小規模な API を構築している場合でも、数千の同時リクエストを処理する必要がある大規模なシステムを構築している場合でも、FetchPHP 2.0 があなたの力になります。
それで、非同期革命に参加する準備はできていますか?私たちの GitHub リポジトリにアクセスして、スターを付けて (私たちはそれが大好きです!)、PHP アプリケーションをより高速に、より効率的に、そしてあえて言えば、もっと楽しく作業できるようにしていきましょう!
FetchPHP 2.0 の世界では、唯一の制限はあなたの想像力 (そしておそらくサーバーのリソースですが、それは別の日の問題です) であることを忘れないでください。
コーディングを頑張ってください。リクエストが非同期になりますように! ?✨
追伸問題が発生した場合、または FetchPHP をさらに素晴らしいものにするためのアイデアがある場合は、ためらわずに問題をオープンするか、プル リクエストを送信してください。一度に 1 つのリクエストを実行して、PHP の世界をより良い場所にしましょう!
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3