9

以下のような Zend Framework アプリケーション構造があります。

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

カスタムフィルターとバリデーターをそれぞれのフォルダーに入れ、使用時に自動的にロードしたいと思います。ただし、これを最もよく達成する方法がわかりません。

この方法で Zend_Filter_Input を操作するには、ソリューションが必要です。

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

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

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

私がすでに知っていること:

  • Core_Filter_MyFilter は Zend_Filter_Interface を実装します
  • 明らかに、フィルターとバリデーターは既にインクルード パスに含まれています。
4

1 に答える 1

18

私は2007年に設計して実装Zend_Filter_Inputしました。

新しいクラス プレフィックスを追加して、カスタム フィルターとバリデーター クラスの読み込みに役立てることができます。デフォルトでは、接頭辞およびZend_Filter_Inputを持つクラスが検索されます。これを試して:"Zend_Filter""Zend_Validate"

$inputFilter->addNamespace('Core_Filter');

isValid()オブジェクトの他のメソッド を実行する前に。

Zend_Filter_Inputまたは、コンストラクターの 4 番目の引数である options 配列に新しいクラス プレフィックス文字列を渡すこともできます。

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

のために私が書いたドキュメントも参照してくださいZend_Filter_Input

于 2008-10-08T22:46:17.227 に答える