2011-02-09 19 views
1

カスタムZend Validatorの場所を "Zend/Validate"に保存する必要はありますか?むしろ、すべてのカスタム検証スクリプトのためのフォルダを作成したいのですが、Zendのドキュメントでは名前空間を変更する以外は見つけることができません。Zend Validatorの場所

ここに私のエラーメッセージがあります。

「プラグインが名 『UserNameValidate』によって、レジストリに見つかりませんでしたが、パスを使用:Zend_Validate_:Zendの/検証/」

私は追加のパスを検索し、それを伝えたいと思います。

答えて

2

私は、名前空間を変更する場所あなたが何か他のものに「Zend_Validateに」からクラスの接頭辞を変更することができますが、ではないという印象の下にあった

addElementPrefixPath('Application_Validate', 
            '../application/validate', 
            'validate'); 
1

APIドキュメントを確認しましたか? Zend_Validateには、名前のAPPLICATION_PATH/validatorsでaddDefaultNamespaces方法...

public static function addDefaultNamespaces($namespace){ 
+0

を使用して私の問題を解決することができました。 addDefaultNamespacesは引数が1つしかないため、私の前提が真実であると信じられます。 –

+0

名前空間を変更すると、ファイルシステムに自動的にマッピングされます。 "My_Validators"を追加すると、My/Validatorsでバリデーターが検索されます。 – Cobby

1

私は通常、(例えばMy_Validate_Ageを)私のカスタムバリデータを保持し、例えばを持っています。この場合、PHPファイルはAPPLICATION_PATH/validators/Age.phpとなります。この設定では、バリデーターのパスをZend_Autoloaderに追加する必要があります。 Bootstrap.phpでこの目的のために私は持っています:

protected function _initAutoload() { 
    $autoLoader = Zend_Loader_Autoloader::getInstance(); 

    $resourceLoader = new Zend_Loader_Autoloader_Resource(array(
       'basePath' => APPLICATION_PATH, 
       'namespace' => '', 
      )); 

    $resourceLoader->addResourceType('validate', 'validators/', 'My_Validate_'); 

    $autoLoader->pushAutoloader($resourceLoader); 

} 

これはあなたに役立つと思います。

関連する問題