加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

zend-framework – Zend Framework – 我们应该在哪里放置自定义

发布时间:2020-12-13 21:42:14 所属栏目:PHP教程 来源:网络整理
导读:我们可以在这里阅读如何写: http://framework.zend.com/manual/en/zend.validate.writing_validators.html class MyValid_Float extends Zend_Validate_Abstract{ 1) 我们应该把它放在哪里? 应用/默认/验证器? application / view / helpers / …? 2) 我
我们可以在这里阅读如何写:

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

class MyValid_Float extends Zend_Validate_Abstract
{

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

应用/默认/验证器?
application / view / helpers / …?

2)
我们是否必须在我们的申请表上注册?

更新:
这是我的引导程序的一个例子:

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 :(请注意,此配置使用默认模块):

应用程序/默认/验证/ 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博客中描述,其中使用此自定义验证器的表单的控制器的构造函数有一个额外的行:

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');
   ...
 }
 ...
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读