Am facut un nou pachet de PHP pentru Composer pentru validarea unui Cnp. Este mic, dar l-am creeat pentru ca asa ceva nu exista pe Composer si am vrut sa fac asta dupa ultimile standarde (testing, CI, composer).
Cum instalez pachetul?
composer require filipac/cnp ~1.0
https://www.youtube.com/watch?v=DlHQKygnd_E
Cum folosesc acest pachet?
Clasa Cnp are 2 metode publice statice: valid care returneaza un boolean (true, false). Este disponibila si functia invalid care este practic functia valid, dar negata.
<?php
use FilipacCnpCnp;
if(Cnp::valid('1930101021162')) #true
echo 'Cnp-ul este valid';
if(! Cnp::valid('1930101021161')) #false
echo 'Cnp-ul este invalid';
if(Cnp::invalid('1930101021161')) #true
echo 'Cnp-ul este invalid';
if(!Cnp::invalid('1930101021162')) #false
echo 'Cnp-ul este valid';
?>
Update:
Incepand de la versiune 1.0.3 am introdus si un ServiceProvider pentru Laravel 5 in caz ca vreti sa folositi acest validator la un form. Tot ce trebuie sa faceti este sa puneti in app.php urmatorul service provider: 'Filipac\Cnp\Laravel\CnpValidatorProvider', dupa care puteti sa folositi validatorul la orice FormRequest sau Validator in felul urmator:
public function rules()
{
return [
'cnp' => 'required|max:13|cnp',
];
}
Sau:
Validator::make($data, [
'cnp' => 'required|max:13|cnp',
])
Cum sa contribui?
Daca ai idei de imbunatatire a acestui script, da fork acestui repository, fa modificarile necesare si apoi da un pull-request. Nu uita sa scrii un test (vezi tests/CnpTest.php) pentru ce ai implementat, altfel nu voi accepta request-ul. Testarea se face cu PhpUnit.
Licienta
Acest script este distribuit sub licienta MIT.


Good work! 😉