2008-10-08 10 views
9

Mam strukturę aplikacji Zend Framework, jak poniżej:Własne Filtry/Walidatory w Zend Framework

/application 
/library 
    /Zend 
    /Core 
     /Filter 
      /MyFilter.php 
     /Validator 
      /MyValidator.php 

Chciałbym umieścić niestandardowych filtrów i weryfikatorów w swoich folderach i ich ładowane automatycznie podczas eksploatacji. Jednak nie mogę wymyślić, jak najlepiej to osiągnąć.

muszę rozwiązanie do pracy z Zend_Filter_Input w ten sposób:

$filters = array(
    'month' => 'Digits', 
    'account' => 'StringTrim', 
    'other' => 'MyFilter' 
); 

$validators = array(
    'account' => 'Alpha', 
    'other' => 'MyValidator' 
); 

$inputFilter = new Zend_Filter_Input($filters, $validators); 

Co już wiem:

  • Core_Filter_MyFilter implementuje interfejsu Zend_Filter_Interface
  • Oczywiście, filtry i zatwierdzające są już w moim dołącz ścieżkę.

Odpowiedz

18

I zaprojektowane i wdrożone Zend_Filter_Input z powrotem w 2007 roku

Można dodawać nowe prefiksy klasy pomóc załadować niestandardowych klas filtrów i weryfikatorów. Domyślnie Zend_Filter_Input wyszukuje klasy z przedrostkami "Zend_Filter" i "Zend_Validate". Wypróbuj to:

$inputFilter->addNamespace('Core_Filter'); 

Przed uruchomieniem isValid() lub innymi metodami obiektu.

Alternatywnie, można również przejść do nowej klasy prefiksu ciąg w tablicy opcji, czwarty argument do konstruktora Zend_Filter_Input:

$options = array('inputNamespace' => 'Core_Filter'); 
$inputFilter = new Zend_Filter_Input($filters, $validators, $data, $options); 

Zobacz także documentation pisałem dla Zend_Filter_Input.

+0

Doskonale! Spędziłem godziny czytając dokumentację, ale musiałem tęsknić za tym wspomnieniem. Dziękuję Ci! – leek

+0

Znajduje się na końcu strony podręcznika ZFI. :-) –

+1

Więc to właśnie SO definiuje jako "ostateczną odpowiedź na dane pytanie" :) –