<?php readonly class UploadProfileImageInput { public function __construct( public int $userId, public string $imagePath, ) { } }
採用したこと
- イミュータブルなオブジェクトならclassにreadonlyをつける
- setterがある場合はプロパティごとにreadonlyをつける
- コンストラクタのプロモーションを使う
- 手間削減のためgetter, setterを定義しない
採用しなかったこと
- classにfinalキーワードをつける
- 流石に継承するやつおらんだろ...おらんよね...?
採用するか迷っていること
- APIレスポンスオブジェクトなどでjson化されるクラスにJsonSerializableを実装するか
- JSONのフォーマットがクラスによって変わる場合はtoArrayメソッドを用意して、呼び出し元でJSONの構造に変換する必要があるため。