PSR平成最後の記事は、PHP。久々のPHP記事ですが、PSR-15に準拠したリクエストハンドラーライブラリの実装を比較してみようと思います。PSR-15とは?HTTPメッセージを使用するリクエストハンドラーと、ミドルウェアコンポーネントの共通インターフェースです。PHP-FIGのHTTP処理標準の設計はなぜPSR-7/15/17になったのかを参照ください。PSR-7については、だいぶ知れ渡っていると思うので、PSR-15のリクエストハンドラーに着目していきます。PHP-15のリクエストハンドラーに対応したライブラリPackagistでPSR-15を検索してみました。いうことで独断と偏見(ダウンロード数が多いもの)を選んで比較してみたいと思います。「フレームワーク」と書いてあるものは除外しています。書いてあるとおりなので。Slimなどのマイクロフレームワークも同様です。league/routenorthwoods/routersunrise/http-routermiddlewares/request-handlerの4つを使ってサンプルプログラム集を作ってみました。sizuhiko/psr15-requesthandler-examplesPSR-7まず前提事項として、PSR-7対応のライブラリが必要です。sunrise/http-routerの例ついては、同系統にsunrise/http-messageとsunrise-php/http-server-requestがあるので、それを利用しています。PSR-7のライブラリが違うと、どのような記述の違いがあるのかわかりやすいでしょう。するか、ダウンロードして、READMEの手順に従ってください。出すだけの簡単なものです。HTTPレスポンスをエミットするつまり、真ん中の部分を処理することになります。実装したクラスが置いてあります。それぞれのリクエストハンドラーからは、適したハンドラが呼び出されるようになっています。そのあたりは、次回以降で解説します。World!をレスポンスボディに入れるだけです。実際のアプリケーションでも使えるようになることがわかると思います。実際のDBの差分を吸収してくれます。そこで利用するSQLは標準であり、Webの標準よりも長い期間利用されています。フレームワークを利用してアプリケーションを作ることは、速く簡単に構築できます。フレームワークに依存せずPHPの標準を使うことで、柔軟にライブラリを変えても、自分のビジネスロジックを流用することができるようになります。対応を進めていますので、フレームワークを使っていても、より互換性が高いアプリケーションを作ることができるようになるかもしれません。次回はPSR-17について、いくつかのライブラリを紹介します。