LocalDate 値オブジェクトの min/max をオーバーライドできるようにする #66
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #65
変更内容
LocalDate クラスを継承したサブクラスで、年月日の最小値・最大値をオーバーライドできるようにする機能を追加しました。
主な追加機能
既存の定数に加え、以下のprotectedメソッドを追加:
src/DateTime/LocalDate.php:232に min() メソッドを新規追加し、最小日付のインスタンスを生成できるようにしました。
src/DateTime/LocalDate.php:227の max() メソッドを、オーバーライド可能なメソッドを使用するように変更しました。
isValidYear(), isValidMonth(), isValidDay() の各バリデーションメソッドを、オーバーライドされたmin/maxメソッドの値を参照するように修正しました。
tests/Unit/DateTime/LocalDateTest.php に以下のテストを追加:
利用シーン
サブクラスで年月日の範囲を制限したい場合に、これらのメソッドをオーバーライドすることで実現できます。例えば、「2000年以降の日付のみ扱うクラス」などを作成する際に有用です。