cpana / cnp
Validare CNP
Requires (Dev)
- phpunit/phpunit: ^7
This package is not auto-updated.
Last update: 2024-11-08 15:57:39 UTC
README
Librarie PHP care permite validarea si extragerea de informatii din CNP.
Instalare
Folosind Composer:
composer require cpana/cnp
Utilizare
In folderul src/Examples gasiti cateva exemple de utilizare.
La instantierea clasei CodNumericPersonal se trimite ca parametru sirul de caractere continand CNP-ul ce trebuie validad.
Daca nu este un CNP valid o exceptie care implementeaza interfata CPANA\CNP\Exception\CNPExceptionInterface va fi aruncata.
use CPANA\CNP\CodNumericPersonal; use CPANA\CNP\Exception\CNPExceptionInterface; ... try { $cnpObj = new CodNumericPersonal($inputString); } catch (CNPExceptionInterface $e) { // handle error }
Daca se doreste tratarea mai in detaliu a diferitelor erori de validare urmati exemplul de mai jos:
use CPANA\CNP\CodNumericPersonal; use CPANA\CNP\Exception\GenericInvalidCNPException; use CPANA\CNP\Exception\InvalidCNPLengthCNPException; use CPANA\CNP\Exception\NonNumericValueCNPException; use CPANA\CNP\Exception\CNPExceptionInterface; ... try { $cnpObj = new CodNumericPersonal($inputString); } catch (InvalidCNPLengthCNPException $e) { // Ex: Display message to user } catch (NonNumericValueCNPException $e) { // Ex: Display message to user } catch (GenericInvalidCNPException $e) { $code = $e->getCode(); // take decision based on error code switch ($code) { case GenericInvalidCNPException::EXCEPTION_COUNTY: // take some action like highlight wrong digits for county JJ echo 'Error code:'.$e->getCode().' '.$e->getMessage().PHP_EOL; break; case GenericInvalidCNPException::EXCEPTION_GENDER: // take some specific action .. break; case GenericInvalidCNPException::EXCEPTION_YEAR: // take some specific action .. break; case GenericInvalidCNPException::EXCEPTION_MONTH: // take some specific action .. case GenericInvalidCNPException::EXCEPTION_DAY: // take some specific action .. break; } } catch (CNPExceptionInterface $e) { // do something } catch (\Exception $e) { // do something }
Testare automata
Rulare teste automate:
./vendor/bin/phpunit tests
PHPUnit 7.5.20 by Sebastian Bergmann and contributors.
....... 7 / 7 (100%)
Time: 106 ms, Memory: 4.00 MB
OK (7 tests, 7 assertions)
Calitatea codului
Pentru a verifica calitatea codului poate fi folosita comanda:
composer lint
Aplicatiile folosite in detaliu:
- PHP CS Fixer - verifica aderarea la coding stand (si repara automat abaterile)
composer cs-fix composer cs-test
- PHP CodeSniffer - partial redundant cu PHP CS Fixer, incare niste verificari care ne sunt utile.
composer phpcs
- PHP Mess Detector - pentru analiza calitatii codului din punct de vedere al volumului, calitatii, etc.
composer phpmd
- PHPStan - analiza statica, identificarea problemelor generale din cod
composer phpstan
- PHPUnit - testare functinala si unitara
composer test
Licenta
Acest pachet este licențiat în conformitate cu licenta MIT.