Przejdź do głównej zawartości

Instalacja i szybki start

  • PHP 8.3 lub nowszy
  • Composer
  1. Dodaj pakiet

    Okno terminala
    composer require slashlab/numerik
  2. Brak konfiguracji

    Pakiet ładuje się automatycznie dzięki PSR-4 — nie wymaga żadnej konfiguracji ani inicjalizacji.

  3. Użyj

    use SlashLab\Numerik\Numerik;
    Numerik::pesel()->isValid('92060512186'); // true
use SlashLab\Numerik\Numerik;
Numerik::pesel()->isValid('92060512186'); // true
Numerik::nip()->isValid('5260250274'); // true
Numerik::regon()->isValid('691761365'); // true
Numerik::krs()->isValid('0000127206'); // true
Numerik::nrb()->isValid('61102010260000000000000000'); // true
Numerik::vatEu()->isValid('PL5260250274'); // true
Numerik::iban()->isValid('PL61102010260000000000000000'); // true

validate() nigdy nie rzuca wyjątku — zwraca ValidationResult z listą błędów, jeśli numer okazał się nieprawidłowy.

use SlashLab\Numerik\Numerik;
$result = Numerik::pesel()->validate('92060512186');
$result->isValid; // true
$result->failures; // []
$result = Numerik::pesel()->validate('92060512185'); // zła cyfra kontrolna
$result->isFailed(); // true
$result->getFirstFailure()->reason->value; // 'invalid_checksum'
$result->getFirstFailure()->message; // komunikat czytelny dla człowieka

Zobacz Wyniki walidacji aby poznać pełne API.

parse() zwraca obiekt wartości lub — jeśli numer jest nieprawidłowy — rzuca ValidationException.

use SlashLab\Numerik\Numerik;
$pesel = Numerik::pesel()->parse('92060512186');
$pesel->getBirthDate()->format('Y-m-d'); // '1992-06-05'
$pesel->getGender(); // Gender::Female
$pesel->getAge(); // int — obliczony od dzisiaj
$pesel->isAdult(); // true

Użyj tryParse() gdy wolisz null przy niepowodzeniu zamiast wyjątku:

$pesel = Numerik::pesel()->tryParse('zły-numer'); // null
MetodaZwracaRzucaKiedy używać
isValid()boolnigdyProste sprawdzenie istnienia
validate()ValidationResultnigdyGdy potrzebujesz powodu błędu
parse()obiekt wartościValidationExceptionGdy potrzebujesz wyodrębnionych danych i wolisz wyjątki
tryParse()obiekt wartości lub nullnigdyGdy potrzebujesz wyodrębnionych danych, ale wolisz null zamiast wyjątku
If this saved you time → ☕ Buy me a coffee