pittacusw / chilean-bundle
一个带有智利验证、常用变量等(RUT、IVA等)的PHP composer包。适用于Laravel 8。
Requires
- php: >=5.4.0
Requires (Dev)
- codeception/codeception: ^2.1
- codeception/specify: ^0.4.3
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联系我。-