У меня есть требование, когда процесс может быть реализован в 2 разных ситуациях. В одной ситуации дата начала не может быть в прошлом, а в другой -
В настоящее время мы используем объекты-значения, где мы выполняем серию проверочных элементов для каждого поля, отправленного с использованием объектов Zend Validate.
Проверка расширяет базовый класс, например.
Класс ValueObject_test1 расширяет фильтр ()
Фильтр состоит из: -
class filter {
protected $_filter;
protected $_filterRules = array();
protected $_validatorRules = array();
protected $_data = array();
protected $_objData = array();
protected $_options = array(Zend_Filter_Input::ESCAPE_FILTER => 'StripTags');
protected $_runValidation = true;
protected function _setFilter()
protected function _addFilter()
protected function _addValidator()
protected function _addData()
protected function _addObject()
protected function _addOption()
public function getData()
public function hasErrors()
public function getMessages()
public function getValidationState()
public function __get()
public function __isset()
public function __set()
}
ValueObject_test1 состоит из:
class ValueObject_test1 extends filter {
public function __construct($testVar) {
$this->_setData(testVar);
$this->_setFilters();
$this->_setValidators();
if($this->_runValidation) {
$this->_setFilter();
}
}
protected function _setFilters(){
$this->_addFilter("*", "StringTrim");
}
protected function _setData($testVar) {
$this->_addData('testVar', $testVar);
}
protected function _setValidators() {
$this->_addValidator('testVar', array(new Zend_Validate(), 'presence'=>'required', 'messages'=>'Enter something'));
}
}
Я пытаюсь добиться расширения ValueObject_test1, чтобы у моей второй ситуации был дополнительный элемент проверки, а также элементы в ValueObject_test1 ()
Я написал следующее для моей второй ситуации: -
<?php
class ValueObject_test2 extends ValueObject_test1 {
public function __construct($testVar, $testVar2) {
$this->_setData($testVar, $testVar2);
$this->_setFilters();
$this->_setValidators();
if($this->_runValidation) {
$this->_setFilter();
}
}
protected function _setFilters(){
$this->_addFilter("*", "StringTrim");
}
protected function _setData($testVar, $testVar2) {
$this->_addData('testVar', $testVar);
$this->_addData('testVar2', $testVar2);
}
protected function _setValidators() {
$this->_addValidator('testVar2', array(new Zend_Validate(), 'presence'=>'required', 'messages'=>'Enter something'));
}
}
Проблема, с которой я столкнулся, заключается в том, что вывод этой команды, по-видимому, только подтверждает мою вторую проверку ситуации, а на второй - ничего. У меня сложилось впечатление, что, устанавливая обе переменные в _setData (), проверка должна происходить для элементов в ValueObject_test1 и элементов в моем ValueObject_test2?