Başka bir sınıfını genişleten bir PHP sınıfını genişletme

0 Cevap php

Bir prosesi, 2 farklı durumda uygulanabilecek bir gereksinim var. Başlangıç ​​tarihi geçmişte olamaz ve nerede olabilir başka nerede olacağını tek bir durum olurdu.

Şu anda biz Zend Validate nesneleri kullanarak sunulan her alanda bir doğrulama öğelerin bir dizi gerçekleştirmek Değer Nesneleri kullanmaktadır.

Doğrulama bir temel sınıf, sözgelimi uzanır

sınıf ValueObject_test1 filtre uzanır ()

Filtre oluşur: -

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 oluşur:

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'));
    }   
}

Benim ikinci durum ValueObject_test1 de öğelerin yanı sıra ek bir doğrulama öğe () böylece ne elde etmek çalışıyorum ValueObject_test1 bir uzantısıdır

Benim ikinci durum için aşağıdaki yazdık: -

<?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'));
    }
}

Ben yaşıyorum sorun bundan çıkışı sadece saniye benim ikinci durum doğrulama ve hiçbir şey doğrulamak için görünür olmasıdır. Ben _setData hem değişkenleri ayarlayarak () doğrulama benim ValueObject_test2 içinde ValueObject_test1 öğeler ve öğeler için meydana gerektiği izlenimi altında değilim?

0 Cevap