umpirsky/zymfony-validator

Zend 验证器适配器用于 Symfony。

2.2.0 2013-04-28 20:17 UTC

This package is not auto-updated.

Last update: 2024-09-14 13:25:19 UTC


README

Zend 验证器适配器用于 Symfony。

Zend 框架附带了一组优秀的验证类。Symfony 也提供了良好的验证组件,但缺少一些 Zend 已经拥有的验证器,如信用卡、邮编、主机名、IBAN...

Zymfony 验证器是这两个验证器之间的桥梁,并为 Zend 验证器提供了 Symfonic 接口。

安装

推荐通过 composer 安装 Zymfony 验证器。

{
    "require": {
        "umpirsky/zymfony-validator": "2.2.*"
    }
}

示例

基本用法

<?php

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
use Zymfony\Component\Validator\Constraint;

class ZymfonyType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            ->add('credit_card_number', 'text', array(
                'constraints' => new Constraint(array(
                    'validator' => 'creditcard',
                ))
            ));
    }
}

自定义选项和消息

<?php

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
use Zend\Validator\StringLength;
use Zymfony\Component\Validator\Constraint;

class ZymfonyType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            ->add('my_cool_string', 'text', array(
                'constraints' => new Constraint(array(
                    'validator' => 'stringlength',
                    'options'   => array(
                        'min'      => 2,
                        'max'      => 8,
                        'messages' => array(
                            StringLength::TOO_LONG => 'My cool string is more than %max% characters long.'
                        )
                    )
                ))
            ));
    }
}

查看更多示例。

注解

<?php

use Zymfony\Component\Validator\Constraint;

class ZymfonyModel
{
    /**
     * @Constraint(validator = "creditcard")
     */
    protected $creditCard;
}

查看更多示例。

Yaml

ZymfonyModel:
    properties:
        creditcard:
            - Zymfony\Component\Validator\Constraint:
                validator: creditcard

可用的验证器

测试

要运行测试套件,您需要 PHPUnit

$ phpunit

许可证

Zymfony 验证器采用 MIT 许可证。