簡體   English   中英

在INI文件中使用自定義Zend驗證程序

[英]Using Custom Zend Validator in INI file

我沒有自定義Zend_Form,我只是在ini文件中聲明了所有元素。 從ini文件創建Zend_Form沒問題,但是在我的ini文件中使用自己的自定義驗證程序時遇到了問題。 它總是返回在注冊表中找不到錯誤。

目前,我的代碼是這樣的。

[Bootstrap]

$resourceLoader = new Zend_Loader_Autoloader_Resource(array(
            'namespace' => 'MY',
            'basePath'  => dirname(__FILE__)
        ));

$resourceLoader->addResourceType('validator', 'forms/validate/', 'Form_Validate');

[ini file]
form.elements.new_password.options.validators.password.validator = "Password"

[Custom Validator]
<?php 

class MY_Form_Validate_Password extends Zend_Validate_Abstract
{
......

請告訴我我在這里想念的東西。 謝謝!

這是一個過度思考的情況:

我假設您使用的是ZF1.x的新版本(v1.10和更高版本)。

您有一個名為project/application/configs/application.ini

在標准application.ini中的行是:

includePaths.library = APPLICATION_PATH "/../library"

這告訴我們,我們所有的庫代碼(一個定制的驗證器都合格)將屬於該路徑下的目錄。

也有一行:

autoloaderNamespaces[] = "MY_"

這告訴我們庫的名稱(在/ library下定義目錄)。

因此我們的自定義驗證器MY_Form_Validate_Password將位於:

project
    /library
        /MY 
            /Form
                /Validate
                    Password.php

不需要任何其他操作,僅當您要執行Zend Framework預期不到的操作時,也需要所有引導代碼,而且驗證程序通常也不會注冊為資源。

該類可以稱為

$validator = new MY_Form_Validate_Password();

像往常一樣,任何其他訪問方法也應該起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM