我設計並實現了Zend_Filter_Input
,包括它的命名空間功能。
您對此功能的工作原理有了一個瞭解。它的意思是允許您在該類的實際名稱更長時使用驗證程序類的簡稱。你顯然正在做相反的事情,試圖命名一個比實際名字更長的名字。
爲了解決這個問題,我建議以下步驟:
- 的名稱,該類
My_Validate_PasswordConfirmation
- 把它放在`應用程序/我的/驗證/ PasswordConfirmation.php
- 添加
namespace=>'My_Validate'
您Zend_Filter_Input
選項。
- 將驗證程序調用爲「PasswordConfirmation」。
更新:我花了一些時間在這。看來我的第一個想法是脫離目標。您擁有的名稱空間問題與Zend_Filter_Input
的功能無關,它與Zend_Application
引導程序功能有關。看起來你可以爲自動加載器指定一個類前綴。
下面是另一個clue:
Zend_Loader_Autoloader_Resource makes the assumption that all code you are autoloading will use an underscore separator between namespaces, components, and classes. As a result, you do not need to use the trailing underscore when registering a resource autoloader.
那麼試試這個:
'namespace' => 'My',
沒有尾隨下劃線。
在官方快速入門教程中,Default_Form_Guestbook被放置在application/forms/Guestbook.php下,Default_Model_Guestbook被放置在application/models/Guestbook.php下。這讓我覺得我應該按照這樣的文件夾結構。 如何將namespace =>'My_Validate'添加到Zend_Filter_Input選項中? 我閱讀本教程: http://zfsite.andreinikolov.com/2008/05/part-4-zend_form-captcha-password-confirmation-date-selector-field-zend_translate/ 你會建議我把庫文件夾下的自定義驗證器?我必須使用「addPrefix」或其他來使其工作嗎? – Billy 2009-06-19 02:42:51