定制 xinjia/spain-validator-bundle 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

xinjia/spain-validator-bundle

最新稳定版本:v1.0.0

Composer 安装命令:

composer require xinjia/spain-validator-bundle

包简介

Symfony2 Validators for Spain Postcodes and Personal identifications

README 文档

README

Bundle que posibilita la validación de datos específicos de España.

El listado de estos datos es:

  • Teléfono fijo
  • Teléfono móvil
  • Cualquier teléfono
  • Código postal
  • DNI
  • CIF
  • DNI Y CIF

Instalación

Lanzamos instalación mediante Composer

$  php composer.phar require avegao/spain-validator-bundle

Registramos el bundle en nuestra instalación de Symfony:

<?php
// app/AppKernel.php
public function registerBundles()
{
    return array(
        // ...
        new Xinjia\SpainValidatorBundle\XinjiaSpainValidatorBundle(),
        // ...
    );
}

Ejemplo de uso

Uso desde la entidad:

<?php

namespace AppBundle\Entity;

// Validación extra, telefono, DNI/NIF...
use Xinjia\SpainValidatorBundle\Validator as ExtraAssert;

/**
 * MyEntity
 *
 */
class MyEntity {

    /**
     * @var string
     *
     * @ORM\Column(name="telefono", type="string", length=255, nullable=true)
     *
     * @Assert\Length(
     *      max = 9,
     *      maxMessage = "El teléfono debe tener {{ limit }} números"
     * )
     *
     * @ExtraAssert\AllPhone(message="No es un teléfono válido")
     */
    private $telefono;

    /**
     * @var string
     *
     * @ORM\Column(name="telefonoFijo", type="string", length=255, nullable=true)
     *
     * @Assert\Length(
     *      max = 9,
     *      maxMessage = "El teléfono debe tener {{ limit }} números"
     * )
     *
     * @ExtraAssert\Phone(message="No es un teléfono fijo válido")
     */
    private $telefonoFijo;
    
    /**
     * @var string
     *
     * @ORM\Column(name="telefonoMovil", type="string", length=255, nullable=true)
     *
     * @Assert\Length(
     *      max = 9,
     *      maxMessage = "El teléfono debe tener {{ limit }} números"
     * )
     *
     * @ExtraAssert\MobilePhone(message="No es un teléfono móvil válido")
     */
    private $telefonoMovil;
    
    /**
     * @var string
     *
     * @ORM\Column(name="codigoPostal", type="string", length=255, nullable=true)
     *
     * @ExtraAssert\ZipCode(message="No es un código postal válido")
     */
    private $codigoPostal;

    /**
     * @var string
     *
     * @ORM\Column(name="dniCif", type="string", length=255, nullable=true)
     *
     * @ExtraAssert\DniCif(message="No es un DNI o CIF válido")
     */
    private $dniCif;

    /**
     * @var string
     *
     * @ORM\Column(name="dni", type="string", length=255, nullable=true)
     *
     * @ExtraAssert\Dni(message="No es un DNI válido")
     */
    private $dni;

    /**
     * @var string
     *
     * @ORM\Column(name="cif", type="string", length=255, nullable=true)
     *
     * @ExtraAssert\Cif(message="No es un CIF válido")
     */
    private $cif;

}

Uso desde el controlador:

<?php

namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

use Xinjia\SpainValidatorBundle\Validator\AllPhone;
use Xinjia\SpainValidatorBundle\Validator\Phone;
use Xinjia\SpainValidatorBundle\Validator\MobilePhone;
use Xinjia\SpainValidatorBundle\Validator\ZipCode;
use Xinjia\SpainValidatorBundle\Validator\DniCif;
use Xinjia\SpainValidatorBundle\Validator\Cif;
use Xinjia\SpainValidatorBundle\Validator\Dni;

class DefaultController extends Controller {

    public function indexAction(Request $request) {

        $form = $this->createFormBuilder()
                ->add('telefono', 'text', [
                    'constraints' => new AllPhone(),
                ])
                ->add('telefonoFijo', 'text', [
                    'constraints' => new Phone(),
                ])
                ->add('telefonoMovil', 'text', [
                    'constraints' => new MobilePhone(),
                ])
                ->add('codigoPostal', 'text', [
                    'constraints' => new ZipCode(),
                ])
                ->add('dniCif', 'text', [
                    'constraints' => new DniCif(),
                ])
                ->add('cif', 'text', [
                    'constraints' => new Cif(),
                ])
                ->add('dni', 'text', [
                    'constraints' => new Dni(),
                ])
                ->add('save', 'submit', array('label' => 'Send'))
                ->getForm();

        $form->handleRequest($request);

        if ($form->isValid()) {
            // ...
        }

        // replace this example code with whatever you need
        return $this->render('AppBundle:Default:index.html.twig', [
                    'form' => $form->createView(),
        ]);
    }

}

xinjia/spain-validator-bundle 适用场景与选型建议

xinjia/spain-validator-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 321 次下载、GitHub Stars 达 5, 最近一次更新时间为 2015 年 02 月 10 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「symfony」 「Symfony2」 「validator」 「postcode」 「spain」 「CIF」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 xinjia/spain-validator-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 xinjia/spain-validator-bundle 我们能提供哪些服务?
定制开发 / 二次开发

基于 xinjia/spain-validator-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 321
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 25
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 4
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2015-02-10