我需要將我的自定義Zend驗證器位置保存爲「Zend/Validate」嗎?我寧願爲我的所有自定義驗證腳本創建一個文件夾,但除了更改命名空間外,在Zend文檔中找不到任何內容。Zend驗證器位置
這是我的錯誤消息。
「插件的名字‘UserNameValidate’沒有在註冊表中找到;使用路徑:Zend_Validate_:Zend公司/驗證/」
我想告訴它來搜索其他路徑。
我需要將我的自定義Zend驗證器位置保存爲「Zend/Validate」嗎?我寧願爲我的所有自定義驗證腳本創建一個文件夾,但除了更改命名空間外,在Zend文檔中找不到任何內容。Zend驗證器位置
這是我的錯誤消息。
「插件的名字‘UserNameValidate’沒有在註冊表中找到;使用路徑:Zend_Validate_:Zend公司/驗證/」
我想告訴它來搜索其他路徑。
我能夠使用
addElementPrefixPath('Application_Validate',
'../application/validate',
'validate');
您是否檢查過API文檔? Zend_Validate中有APPLICATION_PATH/validators
的addDefaultNamespaces方法...
public static function addDefaultNamespaces($namespace){
我通常把我的自定義驗證(例如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);
}
希望這會對你有幫助。
我的印象是,改變了名稱空間允許您將類的前綴從「Zend_Validate的」更改爲其他下,而不是位置來解決我的問題。 addDefaultNamespaces只有一個參數,這使我相信我的假設是真實的? – 2011-02-09 04:44:40