gpt4 book ai didi

zend-framework - Zend Framework - 我们应该在哪里放置我们的自定义验证器?

转载 作者:行者123 更新时间:2023-12-04 04:33:52 28 4
gpt4 key购买 nike

我们可以在这里阅读如何写:

http://framework.zend.com/manual/en/zend.validate.writing_validators.html

class MyValid_Float extends Zend_Validate_Abstract
{

1)我们应该把它放在哪里?

应用程序/默认/验证器?应用程序/ View /助手/...?

2)我们是否必须在我们的应用程序的某处注册它?

更新:这是我的 Bootstrap 示例:

include_once 'config_root.php';
set_include_path ( $PATH );

require_once 'Initializer.php';
require_once "Zend/Loader.php";
require_once 'Zend/Loader/Autoloader.php';

// Set up autoload.
$loader = Zend_Loader_Autoloader::getInstance ();
$loader->setFallbackAutoloader ( true );
$loader->suppressNotFoundWarnings ( false );

// Prepare the front controller.
$frontController = Zend_Controller_Front::getInstance ();
$frontController->throwExceptions(true);
$frontController->registerPlugin ( new Initializer ( PROJECT_ENV ) );

// Dispatch the request using the front controller.
try {
$frontController->dispatch ();

} catch ( Exception $exp ) {
$contentType = "text/html";
header ( "Content-Type: $contentType; charset=UTF-8" );
echo "an unexpected error occurred.";
echo "<h2>Unexpected Exception: " . $exp->getMessage () . "</h2><br /><pre>";
echo $exp->getTraceAsString ();
}

所以,我必须在这里添加:

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

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

然后我应该创建一个文件 IN:(注意这个配置使用的是默认模块):

application/default/validators/ValidateSpam.php

在 validateSpam.php 上有类似的东西:

class My_Validate_Spam extends Zend_Validate_Abstract {

你能确认一下吗?

谢谢

最佳答案

放置您的应用程序/验证器然后在您应用程序的 Bootstrap 类中,添加以下函数:

protected function _initAutoload () {

// configure new autoloader
$autoloader = new Zend_Application_Module_Autoloader (array ('namespace' => '', 'basePath' => APPLICATION_PATH));

// autoload validators definition
$autoloader->addResourceType ('Validator', 'validators', 'Validator_');
}

关于 Zend Bootstrap Autoloading 的更多详细信息

另一种方式this中有描述博客,其中使用此自定义验证器的表单的 Controller 构造函数有一个额外的行:

class JD_Form_Controller extends Zend_Form
{
public function __construct($options = null)
{
// path setting for custom classes MUST ALWAYS be first!
$this->addElementPrefixPath('JD_Form_Validator','JD/Form/Validator','validate');
...
}
...
}

关于zend-framework - Zend Framework - 我们应该在哪里放置我们的自定义验证器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6440308/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com