私は現在、拡張する 2 つのカスタム バリデーターをZend_Validate_Abstract
それぞれLib_Validate_TimeAfter
とという名前で構築していLib_Validate_TimeBetween
ます。名前は非常に単純です。最初の名前は、日付/日時/時刻が他の日付/日時/時刻の後にくるかどうかをテストするために使用され、2 番目は、日付/日時/時刻が他の 2 つの日付/日時/時刻の間に来るかどうかをテストするために使用されます。
これらのバリデーターはどちらも、 a 、 a (または )、 aまたは an_buildDate($value)
の形式の値を取り、それを使用可能な日付形式に変換するという名前の同じメソッドに依存します。datestamp
hourstamp
hh:mm
hh:mm:ss
timestamp
ISO_8601 timestamp
私は自分自身を繰り返して、両方のバリデーターでメソッドをコピーして貼り付けたくないので、それを行うための最良の方法を探していました。
私が現在検討している方法は、バリデーターが使用できるある種のクラスヘルパーを開発することです (不要な依存関係を追加するため、面倒な方法です)。日付/日時/時刻を検証し、メソッドを共有できるため、2つのバリデーターを拡張する他のバリデーターです_buildDate($value)
が、バリデーターが本当に必要になるとは思いません。
それで、繰り返し(DRY)を避けるためにそのようなコードを構造化するための良い方法は何ですか(私は物事を行うための「神の方法」を実際に探しているわけではありません)。