freshwork / chilean-bundle
一个带有智利验证、常用变量等的PHP composer包(RUT、IVA等)。适用于Laravel 5。大智利,棒棒哒 :)
Requires
- php: >=5.4.0
Requires (Dev)
- codeception/codeception: ^2.1
- codeception/specify: ^0.4.3
README
一个包含智利验证、常用变量等的PHP composer包。智利万岁 Mier...
本包包括
- R.U.T.验证
- 更多功能即将推出...
安装
步骤1:Composer
在命令行中运行
composer require freshwork/chilean-bundle
如果你不使用Laravel,那么你已经完成了。
步骤2:Laravel服务提供者
如果你使用的是Laravel 5.5,本包支持自动发现。因此,你可以跳过此步骤。
对于Laravel 5.4或以下版本
将此行添加到你的config/app.php
文件中的providers
数组中
'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
静默模式
你可以防止对象抛出InvalidFormatException
,因此validate()
将仅返回false,使用quiet()
方法。
Rut::parse('12.3k5.6L8-9')->quiet()->validate(); //return false. No exception
你可以使用use_exceptions()
重新启用异常
calculateVerificationNumber()方法
你可以获取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 10 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 verification number 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电影。
地址名称:智利,Providencia,Gonzalo De Spirito Providencia 229
测试
您可以通过以下命令运行测试:./vendor/bin/codecept run
贡献
请随时通过以下邮箱联系我:[gonzalo@freshworkstudio.com](mailto:gonzalo@freshworkstudio.com)。