Zrobiłem Numerik — bibliotekę do walidacji i parsowania polskich numerów identyfikacyjnych: PESEL, NIP, REGON, KRS, NRB, VAT-EU, IBAN, dowód osobisty i paszport. Dostępna dla PHP i TypeScript/JS, plus gotowe reguły walidacji do Laravela.
Zamiast zwracać gołe true/false, Numerik mówi *dlaczego* coś jest nieprawidłowe (zły checksum, niemożliwa data urodzenia, zła długość itd.) i od razu parsuje numer na gotowy obiekt — z PESEL-u wyciągniesz np. datę urodzenia, płeć i wiek jednym wywołaniem.
Zero zależności produkcyjnych, brak wyrażeń regularnych (cała logika na tablicach cyfr, więc bez ryzyka ReDoS), PHP 8.3+, PHPStan poziom 10, pełne testy.
```php
$pesel = Numerik::pesel()->parse('92060512186');
$pesel->getBirthDate()->format('Y-m-d'); // '1992-06-05'
$pesel->getAge(); // liczone od dziś
```
GitHub: https://github.com/sqrcz/numerik
Dokumentacja: https://numerik.slashlab.pl https://numerik-js.slashlab.pl
#programowanie #php #javascript #laravel #opensource





Komentarze (4)
najlepsze
Do tego np. w VatEU masz PL hardcoded w getFormatted, mimo że masz oddzielną metodę zwracającą kod kraju.
W ValidationResult pass, fail i failResult są metodami sztuka dla sztuki, robią tylko i wyłącznie jako alias dla konstruktora. Gdyby chociaż musiały żonglować dużą ilością argumentów, to może jeszcze, ale tak to jest po prostu nadmiarowy kod chyba
Jeśli chodzi o to czy warto korzystać z gotowej sprawdzonej i dobrze otestowanej biblioteki niż metody którą AI wrzuci do Twojego kodu... To pewnie jedno i drugie ma tyle samo sensu w zależności od projektu, jego skali i wymagań.
Pozdrawiam.