定制 mnavarrocarter/chilean-rut 二次开发

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

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

mnavarrocarter/chilean-rut

Composer 安装命令:

composer require mnavarrocarter/chilean-rut

包简介

PHP Rut Value Object with validation utilities, doctrine type, and other cool features.

README 文档

README

Esta librería implementa una clase Rut como un sencillo value object inmutable.

Además, posee dos types para doctrine/dbal.

Instalación

Esta puede ser instalada mediante composer:

composer require mnavarrocarter/chilean-rut

Uso

Parseando un Rut

La clase Rut es capaz de parsear cualquier tipo de rut sin importar el formato usando el método Rut::parse(). Confiadamente, puedes poner el valor directamente de un formulario web y parse se encargará de sanitizar el string y ver si el RUT es válido.

NOTA: Un Rut se considera válido cuando su dígito verificador es algorítmicamente válido para el número. Esta libreria no puede validar que el Rut existe realmente.

<?php

use MNC\Rut;

$rut = Rut::parse('23.546.565-4');

Validando el RUT

TLDR: Un objeto Rut siempre será valido.

Si tu RUT no es válido, el método parse lanzara una excepción de tipo MNC\Rut\IsInvalid. Esto es para seguir buenos principios de objects calisthenics: un objeto de valor siempre se crea en un estado válido, y se mantiene válido a través de todo su ciclo de vida. No se permiten mutaciones que dejen el objeto en un estado inválido.

Por esta razón el objeto MNC\Rut\IsInvalid es completamente inmutable. Esto quiere decir que una vez creado no puedes cambiar su estado interno: solo puedes leer información. Estos son los unicos métodos que puedes usar:

<?php

use MNC\Rut;

$rut = Rut::parse('23.546.565-4');

$rut->number; // (int) 23546565
$rut->verifier; // (MNC\Rut\Verifier::Four) 4

Formateando el Rut

Existen muchas formas distintas de formatear un RUT y esta librería soporta muchas de ellas. El método format devuelve un objeto al cual puedes encadenar llamadas para formatear el RUT y extraer su información de diversas maneras.

He aquí algunos ejemplos:

<?php

use MNC\Rut;

$rut = Rut::parse('23.546.565-4');

echo $rut->toString();          // 235465654
echo $rut->toSimple();          // 23546565-4
echo $rut->toHuman();           // 23.546.565-4
echo $rut->last(4);             // 6565
echo $rut->last(4, pad: '*');   // ****6565
echo $rut->first(4);            // 2354
echo $rut->first(4, pad: '*');  // 2354****

Integraciones con Librerías de Terceros

Doctrine DBAL

Esta librería provee dos Custom Types para Doctrine, con el objetivo de que puedas mapear tus objetos Rut fácilmente a una base de datos relacional.

MNC\Rut\Doctrine\RutType mapea tu RUT a una columna VARCHAR. El string se guarda con puntos y guion. Ex: 16.894.365-2. Es una forma no tan eficiente de guardar los RUTS (en términos de espacio), pero ayuda mucho cuando se visualiza o exporta la base de datos a otras fuentes.

MNC\Rut\Doctrine\NumericRutType mapea tu RUT a una columna INTEGER. El número se guarda sin dígito verificador y es recalculado cuando la columna es transformada a un valor PHP. Esta forma de guardar ruts es muy eficiente (en términos de espacio), pero cuesta comparar y leer los números si visualizas o exportas los registros en la base de datos.

Por supuesto, puedes elegir el Type que más se ajuste a tus necesidades.

FAQ

¿Por qué esta librería?

Esta librería nace de la necesidad de estandarizar una clase Rut común para todos mis proyectos PHP.

Si bien es cierto, hay muchas librerías con implementaciones de Rut chilenos en PHP, muchas de ellas tienen notorias deficiencias:

  1. No están testeadas unitariamente.
  2. No estan tipadas apropiadamente
  3. No tienen un buen diseño y sus apis tienen efectos secundarios.
  4. Están acopladas a un framework (Laravel Rut y otras hierbas)
  5. No proveen herramientas ni integraciones con librerías de terceros, como Doctrine.

mnavarrocarter/chilean-rut 适用场景与选型建议

mnavarrocarter/chilean-rut 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 9.44k 次下载、GitHub Stars 达 14, 最近一次更新时间为 2018 年 08 月 08 日, 在 PHP 生态内属于活跃度较高的组件。

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

围绕 mnavarrocarter/chilean-rut 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

  • 总下载量: 9.44k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 14
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 14
  • Watchers: 2
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-08-08