2011-02-09 76 views
1

我需要將我的自定義Zend驗證器位置保存爲「Zend/Validate」嗎?我寧願爲我的所有自定義驗證腳本創建一個文件夾,但除了更改命名空間外,在Zend文檔中找不到任何內容。Zend驗證器位置

這是我的錯誤消息。

「插件的名字‘UserNameValidate’沒有在註冊表中找到;使用路徑:Zend_Validate_:Zend公司/驗證/」

我想告訴它來搜索其他路徑。

回答

2

我能夠使用

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

您是否檢查過API文檔? Zend_Validate中有APPLICATION_PATH/validators的addDefaultNamespaces方法...

public static function addDefaultNamespaces($namespace){ 
+0

我的印象是,改變了名稱空間允許您將類的前綴從「Zend_Validate的」更改爲其他下,而不是位置來解決我的問題。 addDefaultNamespaces只有一個參數,這使我相信我的假設是真實的? – 2011-02-09 04:44:40

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

} 

希望這會對你有幫助。