1

我需要一个自定义表单验证。所以我写了一个类似这个的函数。

到现在为止还挺好。但我真的有问题把 PHP 文件/类放在哪里。

它应该把它放在 vendor/ 作为一个似乎合乎逻辑的库。我使用了这个路径:vendor/company/Validator/MyValidator.php。但我不知道如何包括我的课程。

谁能给我一个简短的方法来设置供应商模块或使用自定义验证器所需的任何东西?

互联网上有很多教程,但大多数都是关于验证逻辑的,而不是 Zend 的“基础知识”。

谢谢!

编辑:

我找到了这个链接并将我的代码配置如下:

我的代码如下:

        use MyStuff\Validator\CustomValidator as CustomValidator;
        ...
        $inputFilter->add($factory->createInput(array(
            'name'     => 'zip',
            'required' => false,
            'filters'  => array(
                array('name' => 'Int'),
            ),
             'validators' => array(
                  array(
                      'name' => array( new CustomValidator ),
                      'options' => array(
                          'min' => 1,
                      ),
                  ),
                ),
        )));
        ...

当我尝试提交表单时,我看到部分验证器代码为纯文本,并收到一个无法找到该类的致命错误......

4

2 回答 2

4

我现在将假设一个目录结构。

供应商名称:MyStuff

FQCN:MyStuff\Validator\AwesomeValidator;

文件路径:./vendor/mystuff/library/MyStuff/Validator/AwesomeValidator

鉴于 Zend Framework 2 遵循PSR-0自动加载标准,您需要将自动加载器路径添加到供应商自动加载器。ZF2 使用 Composer 来处理自动加载。当您通过 Composer 安装 OWN Vendor 时,这是自动完成的。如果您需要手动执行此操作,请在内部执行composer.json

"autoload": {
    "psr-0": {
        "Mystuff\\": "vendor/mystuff/library/"
    }
}

我希望这会给你足够的工作。

于 2012-12-18T13:52:04.790 回答
0

使用 composer 的替代方法是一种更手动的方法,它可能会避免您的包含问题。此页面上的评论可能有助于向您展示手动放置内容的位置:http: //framework.zend.com/manual/2.0/en/modules/zend.validator.writing-validators.html

于 2013-01-18T16:04:20.273 回答