PHPackages                             kkszymanowski/pesel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. kkszymanowski/pesel

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

kkszymanowski/pesel
===================

Sprawdzanie poprawności numeru PESEL

4.0.0(4y ago)7250.7k↓59.8%3[1 issues](https://github.com/KKSzymanowski/PESEL/issues)MITPHPPHP &gt;=7.3.0CI failing

Since Jun 16Pushed 4y ago3 watchersCompare

[ Source](https://github.com/KKSzymanowski/PESEL)[ Packagist](https://packagist.org/packages/kkszymanowski/pesel)[ RSS](/packages/kkszymanowski-pesel/feed)WikiDiscussions master Synced 4d ago

READMEChangelog (7)Dependencies (2)Versions (10)Used By (0)

PESEL
-----

[](#pesel)

[![Build Status](https://camo.githubusercontent.com/a64bc8b1e31211dce866c96304e691c0620dcc62c3e489fb79b9712b6119442f/68747470733a2f2f6170702e7472617669732d63692e636f6d2f4b4b537a796d616e6f77736b692f504553454c2e7376673f6272616e63683d6d6173746572)](https://app.travis-ci.com/KKSzymanowski/PESEL)[![Coverage Status](https://camo.githubusercontent.com/4e488e21c1f1e84e8bcf51ffd7088473195bf867c23510c648e394a7c67d45ab/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f4b4b537a796d616e6f77736b692f504553454c2f62616467652e7376673f6272616e63683d6d6173746572)](https://coveralls.io/github/KKSzymanowski/PESEL?branch=master)[![StyleCI](https://camo.githubusercontent.com/1541dfc1dfe2ae45e2f4d042c74beb6f4c45191b0a7625735873708eba329aff/68747470733a2f2f7374796c6563692e696f2f7265706f732f36313330343937392f736869656c64)](https://styleci.io/repos/61304979)[![Latest Stable Version](https://camo.githubusercontent.com/e492118df2ecb8f9d1bec3ac56cac67819b7f82055970c171e3920f974bb7016/68747470733a2f2f706f7365722e707567782e6f72672f6b6b737a796d616e6f77736b692f706573656c2f762f737461626c65)](https://packagist.org/packages/kkszymanowski/pesel)[![License](https://camo.githubusercontent.com/6e637a7f8c6eee69bb3daaf8b08eee42378df519231ffb94fff4f7f310e16041/68747470733a2f2f706f7365722e707567782e6f72672f6b6b737a796d616e6f77736b692f706573656c2f6c6963656e7365)](https://packagist.org/packages/kkszymanowski/pesel)

Paczka do łatwej walidacji numeru **PESEL**.

### Instalacja

[](#instalacja)

[Composer](https://getcomposer.org/):

```
composer require kkszymanowski/pesel

```

### Upgrade guide

[](#upgrade-guide)

#### 2.\* -&gt; 3.\*

[](#2---3)

Wersja 3 jest wstecznie kompatybilna z wersją 2, ale wymaga PHP &gt;=7.3. Poza podniesieniem wersji PHP żadne zmiany nie są konieczne.

Zalecana jest natomiast zmiana łapanego wyjątku `InvalidArgumentException` na wyjątki odpowiadające konkretnym błędom walidacji:

- `Pesel\Exceptions\InvalidLengthException` - Błędna długość
- `Pesel\Exceptions\InvalidCharactersException` - Znaki inne niż cyfry
- `Pesel\Exceptions\InvalidChecksumException` - Błędna suma kontrolna

lub po prostu na `Pesel\Exceptions\PeselValidationException` aby złapać wszystkie błędy walidacji.

#### 3.\* -&gt; 4.\*

[](#3---4)

W wersji 4 zmieniona została walidacja numeru PESEL, aby dobrze identyfikować numery takie jak `00000000000` i `44444444444` jako niepoprawne. Wersja 4 jest zatem niekompatybilna z wersją 3 w tych przypadkach brzegowych, ale nie powinno być problemów z kompatybilnością w większości przypadków.

Od wersji 4 w przypadku nieprawidłowej daty urodzenia w numerze PESEL rzucany jest nowy wyjątek - `Pesel\Exceptions\InvalidBirthDateException`.

### Użycie

[](#użycie)

##### Tworzenie obiektu

[](#tworzenie-obiektu)

```
$pesel = new Pesel($number);
```

lub

```
$pesel = Pesel::create($number);
```

**Powyższe metody są równoważne.**

Podczas tworzenia obiektu sprawdzana jest poprawność numeru PESEL.

- Powinien mieć 11 znaków.
- Powinien zawierać wyłącznie cyfry.
- Suma kontrolna powinna być poprawna.
- Powinien zawierać prawidłową datę urodzenia:
    - rok &gt;= 1800 i &lt; 2300.
    - miesiąc &gt;= 1 i &lt;= 12.
    - dzień &gt;= 1 i nie większy niż liczba dni w danym miesiącu i danym roku.

Jeżeli przynajmniej jeden z tych warunków nie zostanie spełniony, zostanie rzucony odpowiedni wyjątek:

- `Pesel\Exceptions\InvalidLengthException` - Błędna długość
- `Pesel\Exceptions\InvalidCharactersException` - Znaki inne niż cyfry
- `Pesel\Exceptions\InvalidChecksumException` - Błędna suma kontrolna
- `Pesel\Exceptions\InvalidChecksumException` - Błędna data urodzenia

```
try {
    Pesel::create($number);

    echo('Numer PESEL jest poprawny');
} catch(Pesel\Exceptions\InvalidLengthException $e) {
    echo('Numer PESEL ma nieprawidłową długość');
} catch(Pesel\Exceptions\InvalidCharactersException $e) {
    echo('Numer PESEL zawiera nieprawidłowe znaki');
} catch(Pesel\Exceptions\InvalidChecksumException $e) {
    echo('Numer PESEL zawiera błędną sumę kontrolną');
} catch(Pesel\Exceptions\InvalidBirthDateException $e) {
    echo('Numer PESEL zawiera nieprawdiłową datę urodzenia');
}
```

Wszystkie powyższe wyjątki dziedziczą z `Pesel\Exceptions\PeselValidationException` więc jeżeli niepotrzebne jest rozróżnienie na konkretne błędy walidacji można zastosować jedną klauzulę `catch`:

```
try {
    Pesel::create($number);

    echo('Numer PESEL jest poprawny');
} catch(\Pesel\Exceptions\PeselValidationException $e) {
    echo('Numer PESEL jest błędny');
}
```

##### Pobieranie zawartości numeru PESEL:

[](#pobieranie-zawartości-numeru-pesel)

```
$pesel = new Pesel($number);

$pesel->getNumber();    // Zwraca string

$pesel->getBirthDate(); // Zwraca DateTime

$pesel->getGender();    // Zwraca Pesel::GENDER_MALE lub Pesel::GENDER_FEMALE
```

##### Sprawdzenie poprawności:

[](#sprawdzenie-poprawności)

```
Pesel::isValid($pesel); // Zwraca bool, nie rzuca wyjątku
```

##### Sprawdzenie daty urodzenia:

[](#sprawdzenie-daty-urodzenia)

Parametr `$birthDate` jest instancją wbudowanej w PHP klasy DateTime

```
PeselValidator::hasBirthDate(Pesel::create($pesel), $birthDate);
```

##### Sprawdzenie płci

[](#sprawdzenie-płci)

```
PeselValidator::hasGender(Pesel::create($pesel), Pesel::GENDER_MALE);

PeselValidator::hasGender(Pesel::create($pesel), Pesel::GENDER_FEMALE);
```

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity40

Moderate usage in the ecosystem

Community12

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 97% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~323 days

Recently: every ~484 days

Total

7

Last Release

1731d ago

Major Versions

1.0.0 → 2.0.02016-06-17

2.1.0 → 3.0.02020-11-04

3.0.1 → 4.0.02021-10-08

PHP version history (3 changes)1.0.0PHP &gt;=5.4

2.0.0PHP &gt;=5.3.3

3.0.0PHP &gt;=7.3.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/13980973?v=4)[Kuba Szymanowski](/maintainers/KKSzymanowski)[@KKSzymanowski](https://github.com/KKSzymanowski)

---

Top Contributors

[![KKSzymanowski](https://avatars.githubusercontent.com/u/13980973?v=4)](https://github.com/KKSzymanowski "KKSzymanowski (32 commits)")[![snapshotpl](https://avatars.githubusercontent.com/u/312655?v=4)](https://github.com/snapshotpl "snapshotpl (1 commits)")

---

Tags

peselphpvalidationpeselPoprawnośćnumeru

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/kkszymanowski-pesel/health.svg)

```
[![Health](https://phpackages.com/badges/kkszymanowski-pesel/health.svg)](https://phpackages.com/packages/kkszymanowski-pesel)
```

###  Alternatives

[kiczort/polish-validator

Validators for Polish identification numbers: PESEL, NIP, REGON.

11133.6k5](/packages/kiczort-polish-validator)[pacerit/laravel-polish-validation-rules

Simple Polish Validation rules for Laravel and Lumen framework

1453.9k](/packages/pacerit-laravel-polish-validation-rules)[kiczort/polish-validator-bundle

Symfony bundle with validators for Polish identification numbers: PESEL, NIP, REGON, PWZ.

1124.1k](/packages/kiczort-polish-validator-bundle)[marcosh/php-validation-dsl

A DSL for validating data in a functional fashion

483.9k](/packages/marcosh-php-validation-dsl)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
