HTTPリクエストを処理するための標準のPHP APIは古くなっています。 プログラマーはグローバル変数を使用しないことを学びましたが、$ _GET、$ _SERVERなどの標準的なスーパーグローバルは、遠い過去を思い出させます。 もちろん、フレームワークはこの情報をRequest \ Responseクラスにカプセル化しますが、そのような実装は多くあり、単一の標準はまだありません。 PHP-FIGのPSR-7標準は、HTTPプロトコルの表現を単一の分母に持ってくるだけで、多くのフレームワークですぐに動作するミドルウェアを作成できます。 まだ採用されていませんが、早期投票により、新基準に対するほぼ全員の支持が示されました。 バージョン3.0のリリースに備えて、PHPixieはすでにPSR-7を採用および実装しており、インターフェイスの作業を簡素化するためのラッパーも提供しています。 マイクロフレームワークを作成し、PHPixie HTTPをベースとして使用する場合、1晩で結果を達成できます。
次に、実装自体を見てみましょう。
$slice = new \PHPixie\Slice(); $http = new \PHPixie\HTTP($slice);
リクエストPSR-7はかなり単純化されたインターフェイスであり、PHP自体と同様に配列の形式で$ _GETおよび$ _POSTパラメーターを提供します。PHPixieラッパーは、それらの操作を大幅に簡素化します。
応答HTTP応答に対するラッパー自体に加えて、PHPixieは頻繁に使用される回答を自動的に作成して、ヘッダーに煩わされることを防ぎます。 もちろん、答えが構築された後、好みに合わせて修正することができます。
$responses = $http->responses();
コンテキストこれですべてですが、Cookieとセッションはスキップしました。 これらは要求と応答の両方に適用され、多くの場合、コントローラー内だけでなく、承認モジュールなどの他の場所でもアクセスする必要があります。 PHPixieは、それらを個別のコンテキストに割り当てます。
他のPSR-7実装もありますが、これまでのところ、ラッパーやコンテキストがないため、それらを使用するのは非常に不便です。 それらのかなりの数が特性を使用しているため、PHP 5.4+が必要です。
その時点で、すべてのPHPixieライブラリは5.3より古いバージョンのPHP(新しい7とHHVMを含む)で動作し、さらにユニットテストで100%カバーされています。 コード自体は
github.com/phpixie/httpで見つけることができます