愛しているふじしゃんです。Webエンジニアリングチームでアルバイトをしています。今回は、pixivのParamHelperにPSR-7とValueObjectの力を授けたRequestParamFilterをピクシブ百科事典に実装した話を書いていきます。ついてこれまでピクシブ百科事典には、リクエストパラメータやリクエストボディを厳密に検証する仕組みがありませんでした。Webアプリケーションにとって入力値検証は非常に重要なことです。pixivでは、受け取った値を安全に扱うためにParamHelperという機能を実装し、必ず検証するようにしています。以下のように書くことで値を検証しPHPStanで型付けを行うことができます。false|int<1,max>詳しくは以下の記事を参照してください。マッピングする機能を追加したものをピクシブ百科事典に実装しました。PSR-7ってなーに?PSR-7はPHP-FIGというグループが定めたHTTPのリクエストとレスポンスに関する標準仕様のことです。www.php-fig.orgPHPのWebフレームワークである、LaravelやCakePHPでもPSR-7の仕様を用いてリクエストとレスポンスを記述できるようになっています。仕様として定義されているのはインターフェイスのみで、それ実装した様々なパッケージが存在しています。特徴としては、基本的にどのメソッドも新しいオブジェクトを返すためイミュータブルになっていることです。Recommendations)を新たに導入する提案が先日可決されました。廃止するフローでしたが、PERの導入によって、ワーキンググループを通して継続的にメンテナンスしていけるようになりました。2022年3月時点ではまだ具体的な動きはありませんが、提案によれば以下のような粒度でのPERが想定されています。finished.)groups.google.comまさに、進化する勧告ですね。