pittacusw/chilean-bundle

一个带有智利验证、常用变量等(RUT、IVA等)的PHP composer包。适用于Laravel 8。

2.1.3 2019-01-04 04:17 UTC

This package is auto-updated.

Last update: 2024-09-19 06:11:09 UTC


README

一个带有智利验证、常用变量等的PHP composer包。智利万岁...

本包包含

  • R.U.T.验证
  • 更多功能即将推出...

安装

步骤 1: Composer

在命令行中运行

composer require freshwork/chilean-bundle 

如果您不使用Laravel,则已完成。

步骤 2: Laravel 服务提供者

如果您使用的是 Laravel 5.5,则此包支持自动发现。因此,您可以跳过此步骤。

Laravel 5.4 或更低版本

将此行添加到您的 providers 数组中,在您的 config/app.php 文件中

'providers' => [
    ...
    Freshwork\ChileanBundle\Laravel\ChileanBundleServiceProvider::class
];

并可以添加 RUT 门面

'aliases' => [
    ...
    'Rut'   => Freshwork\ChileanBundle\Laravel\Facades\Rut::class
];

用法

基础用法

您可以使用RUT对象,但我推荐使用Rut::parse()方法。

include('vendor/autoload.php'); //Enable composer autloading if not using laravel
use Freshwork\ChileanBundle\Rut;

$rut = new Rut('11.111.111', '1');
$rut->validate(); //true

(new Rut('12345678', '5'))->validate(); //true

parse()方法

是使用对象的推荐方式。它将自动分离验证码(Dígito verrificador)和其余的数字。

    Rut::parse('11.111.111-1')->validate(); //true
    Rut::parse('11111111-1')->validate(); //true
    Rut::parse('12.345.678-5')->validate(); //true
    Rut::parse('123456785')->validate(); //true
    Rut::parse('1.23.45.6.7.8-5')->validate(); //true. It escapes all the dots and dashes.

set()方法

这是 (new Rut($number, $vn)) 的快捷方式。

Rut::set('10.123.123', '5'); //return true

validate() & isValid()方法

validate()isValid() 的别名

Rut::parse('12345678-5')->isValid(); //true

无效的R.U.T.格式

如果R.U.T.无效,它将返回false

Rut::parse('12.345.678-9')->validate(); //false

无效的R.U.T.格式

如果R.U.T.格式不正确,它将抛出 Freshwork\ChileanBundle\Exceptions\InvalidFormatException

Rut::parse('12.3k5.6L8-9')->validate(); //throw Freshwork\ChileanBundle\Exceptions\InvalidFormatException
Rut::set('12.345.678')->validate(); // throw exception. We didn't set the verification number
Quiet模式

您可以使用quiet()方法防止对象抛出 InvalidFormatException,因此validate()将仅返回false。

Rut::parse('12.3k5.6L8-9')->quiet()->validate(); //return false. No exception

您可以使用use_exceptions()重新启用异常

calculateVerificationNumber()方法

您可以通过传递给set()方法的单个参数来获取RUT的正确验证码。注意,我们在set()方法中只传递了一个参数。我们没有定义验证码。

Rut::set('12.345.678')->calculateVerificationNumber(); //return 5
Rut::set('12.345.678-9')->calculateVerificationNumber(); //return 5
Rut::parse('12.345.678-9')->calculateVerificationNumber(); //return 5

这个类基于这个简单但高效的函数:http://www.dcc.uchile.cl/~mortega/microcodigos/validarrut/php.php

format()方法

以定义的格式返回Rut对象作为字符串。

Rut::parse('123456789')->format(); //return 12.345.678-9. It doesn't validates. It just formats.
Rut::parse('123456785')->format(Rut::FORMAT_COMPLETE); //return 12.345.678-5.
Rut::parse('123456785')->format(Rut::FORMAT_WITH_DASH); //return 12345678-5.
Rut::parse('123456785')->format(Rut::FORMAT_ESCAPED); //return 123456785.
Rut::parse('12.345.678-5')->format(Rut::FORMAT_ESCAPED); //return 123456785.

normalize()方法

如果您要将RUT保存在数据库中,我建议保存规范化的RUT字符串。此方法是->format(Rut::FORMAT_ESCAPED)的别名

Rut::parse('12.345.678-5')->normalize(); //return '123456785'

toArray()方法

以定义的格式返回Rut对象作为字符串。

Rut::parse('12.345.678-5')->toArray(); //return ['12345678', '5']

fix()方法

修复当前RUT。它将RUT的数字部分(不带验证码)作为输入,然后计算正确的验证码,然后使用此结果更新验证码。

Rut::parse('12.345.678-9')->fix()->format(); //return '12.345.678-5'

//Set a new rut without setting any verification number
Rut::set('12345678')->fix()->format(); //return '12.345.678-5'

//Set a new rut with an invalid verification number that will be replaced
Rut::set('12345678', '6')->fix()->format(); //return '12.345.678-5'

Rut::parse('12.345.678-9')->validate(); //return false
Rut::parse('12.345.678-9')->fix()->validate(); //return true

vn()number()方法

您可以使用这些方法设置和获取RUT号码和验证码。如果没有传递任何参数给这些方法,它将返回相应的值。否则,它将设置值。

//Getter
Rut::parse('12.345.678-9')->vn(); //return '9'
Rut::parse('12.345.678-9')->number(); //return '12345678'

//Setter
Rut::parse('12.345.678-9')->vn('7')->format(); //return '12.345.678-7'
Rut::parse('12.345.678-9')->number('11111111')->format(); //return '11.111.111-9'
Rut::set()->number('12.345.678')->vn('9')->format() //return '12.345.678-9'

Laravel

验证

如果您使用服务提供者,可以使用Laravel的验证系统使用cl_rut验证ruts。

...
class ClientController extends Controller{
    ...
    use ValidateRequests;
    ...
    public function store(Request $request) {
        $this->validate($request, [
            `nombre' => 'required|min:2',
            'email' => 'required|email',
            'rut'   => 'required|cl_rut'
        ]);
        //Do stuff
    }
}

示例

RUT生成器

<?php

use \Freshwork\ChileanBundle\Rut;

//We loop 100 times
for($i = 0; $i < 10; $i++)
{
    //generate random number between 1.000.000 and 25.000.000
    $random_number = rand(1000000, 25000000);

    //We create a new RUT wihtout verification number (the second paramenter of Rut constructor)
    $rut = new Rut($random_number);

    //The fix method calculates the  
    echo $rut->fix()->format() . " \n";
}
//Output (random)

17.062.139-5
18.815.969-9
14.287.543-8
13.864.006-K
16.724.081-K
20.465.345-3
13.294.672-8
11.102.906-7
8.333.479-7
7.661.557-8

此生成器生成1,000,000到25,000,000之间的十个随机RUT。

更短的语法

<?php
for($i = 0; $i < 10; $i++)
    echo \Freshwork\ChileanBundle\Rut::set(rand(1000000, 25000000))->fix()->format() . "\n";

许可证和Postalware

您可以无任何限制地免费使用此包,尽管它很流行,但我们实施了“Postalware”许可证。如果您在生产中使用此包并喜欢其功能,我们将非常感谢您发送您城市/地区的明信片、感谢信或超8电影。

地址名称:Gonzalo De Spirito Apoquindo 5980号。第17层,拉斯康德斯,圣地亚哥。智利

测试

您可以通过以下命令运行测试:./vendor/bin/codecept run

贡献

请随时通过gonzalo@freshworkstudio.com联系我。-