В настоящее время я создаю два пользовательских валидатора, расширяющих Zend_Validate_Abstract
с именами соответственно Lib_Validate_TimeAfter
и Lib_Validate_TimeBetween
.Имена довольно просты: первое используется для проверки, если дата / дата / время наступает после другого, а второе используется для проверки того, находится ли дата / дата / время между двумя другими дата / дата / время.
Оба этих валидатора будут полагаться на один и тот же метод с именем _buildDate($value)
, который принимает значение в виде datestamp
, hourstamp
(либо hh:mm
, либо hh:mm:ss
), timestamp
или ISO_8601 timestamp
и преобразовать его в пригодный для использования формат даты.
Поскольку я не хочу повторяться и копировать / вставлять метод в оба моих валидатора, я искал лучший способ сделатьit.
Возможности, которые я сейчас рассматриваю, состоят в том, чтобы разработать некоторый класс помощника по классам, который мои валидаторы могли бы использовать (довольно грязный способ делать вещи, так как он добавляет ненужные зависимости), или я мог бы добавитьдругой уровень абстракции путем создания другого валидатора, который проверяет дату / дату / время, а затем расширяет мои два валидатора, так как я мог бы использовать метод _buildDate($value)
, но тогда я не думаю, чтоВы действительно нуждаетесь в валидаторе.
Итак, что было бы хорошим способом (я на самом деле не ищу "Путь богов" делать вещи) для структурирования такого рода кода, чтобы избежать повторения (DRY)