{"id":20090866,"url":"https://github.com/kkszymanowski/pesel","last_synced_at":"2025-06-13T13:03:20.782Z","repository":{"id":47925515,"uuid":"61304979","full_name":"KKSzymanowski/PESEL","owner":"KKSzymanowski","description":"Walidacja numeru PESEL(Polish national identification number validation)","archived":false,"fork":false,"pushed_at":"2021-12-10T10:09:20.000Z","size":36,"stargazers_count":7,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-25T04:04:35.401Z","etag":null,"topics":["pesel","php","validation"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KKSzymanowski.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-06-16T15:27:48.000Z","updated_at":"2024-08-07T07:51:17.000Z","dependencies_parsed_at":"2022-08-12T14:20:51.432Z","dependency_job_id":null,"html_url":"https://github.com/KKSzymanowski/PESEL","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KKSzymanowski%2FPESEL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KKSzymanowski%2FPESEL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KKSzymanowski%2FPESEL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KKSzymanowski%2FPESEL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KKSzymanowski","download_url":"https://codeload.github.com/KKSzymanowski/PESEL/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252616076,"owners_count":21776914,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pesel","php","validation"],"created_at":"2024-11-13T16:26:45.856Z","updated_at":"2025-05-06T03:30:50.809Z","avatar_url":"https://github.com/KKSzymanowski.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"## PESEL\n[![Build Status](https://app.travis-ci.com/KKSzymanowski/PESEL.svg?branch=master)](https://app.travis-ci.com/KKSzymanowski/PESEL)\n[![Coverage Status](https://coveralls.io/repos/github/KKSzymanowski/PESEL/badge.svg?branch=master)](https://coveralls.io/github/KKSzymanowski/PESEL?branch=master)\n[![StyleCI](https://styleci.io/repos/61304979/shield)](https://styleci.io/repos/61304979)\n[![Latest Stable Version](https://poser.pugx.org/kkszymanowski/pesel/v/stable)](https://packagist.org/packages/kkszymanowski/pesel)\n[![License](https://poser.pugx.org/kkszymanowski/pesel/license)](https://packagist.org/packages/kkszymanowski/pesel)\n\n\nPaczka do łatwej walidacji numeru **PESEL**.\n\n### Instalacja\n[Composer](https://getcomposer.org/):\n```\ncomposer require kkszymanowski/pesel\n```\n\n### Upgrade guide\n#### 2.* -\u003e 3.*\nWersja 3 jest wstecznie kompatybilna z wersją 2, ale wymaga PHP \u003e=7.3.\nPoza podniesieniem wersji PHP żadne zmiany nie są konieczne.\n\nZalecana jest natomiast zmiana łapanego wyjątku `InvalidArgumentException` na wyjątki odpowiadające konkretnym błędom walidacji:\n- `Pesel\\Exceptions\\InvalidLengthException` - Błędna długość\n- `Pesel\\Exceptions\\InvalidCharactersException` - Znaki inne niż cyfry\n- `Pesel\\Exceptions\\InvalidChecksumException` - Błędna suma kontrolna\n\nlub po prostu na `Pesel\\Exceptions\\PeselValidationException` aby złapać wszystkie błędy walidacji.\n\n#### 3.* -\u003e 4.*\nW wersji 4 zmieniona została walidacja numeru PESEL, aby dobrze identyfikować numery takie jak `00000000000` i `44444444444` jako niepoprawne.\nWersja 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.\n\nOd wersji 4 w przypadku nieprawidłowej daty urodzenia w numerze PESEL rzucany jest nowy wyjątek - `Pesel\\Exceptions\\InvalidBirthDateException`.\n\n### Użycie\n##### Tworzenie obiektu\n```php\n$pesel = new Pesel($number);\n```\nlub\n```php\n$pesel = Pesel::create($number);\n```\n**Powyższe metody są równoważne.**\n\nPodczas tworzenia obiektu sprawdzana jest poprawność numeru PESEL.\n- Powinien mieć 11 znaków.\n- Powinien zawierać wyłącznie cyfry.\n- Suma kontrolna powinna być poprawna.\n- Powinien zawierać prawidłową datę urodzenia:\n    - rok \u003e= 1800 i \u003c 2300.\n    - miesiąc \u003e= 1 i \u003c= 12.\n    - dzień \u003e= 1 i nie większy niż liczba dni w danym miesiącu i danym roku.\n    \nJeżeli przynajmniej jeden z tych warunków nie zostanie spełniony, zostanie rzucony odpowiedni wyjątek:\n- `Pesel\\Exceptions\\InvalidLengthException` - Błędna długość\n- `Pesel\\Exceptions\\InvalidCharactersException` - Znaki inne niż cyfry\n- `Pesel\\Exceptions\\InvalidChecksumException` - Błędna suma kontrolna\n- `Pesel\\Exceptions\\InvalidChecksumException` - Błędna data urodzenia\n\n```php\ntry {\n    Pesel::create($number);\n\n    echo('Numer PESEL jest poprawny');\n} catch(Pesel\\Exceptions\\InvalidLengthException $e) {\n    echo('Numer PESEL ma nieprawidłową długość');\n} catch(Pesel\\Exceptions\\InvalidCharactersException $e) {\n    echo('Numer PESEL zawiera nieprawidłowe znaki');\n} catch(Pesel\\Exceptions\\InvalidChecksumException $e) {\n    echo('Numer PESEL zawiera błędną sumę kontrolną');\n} catch(Pesel\\Exceptions\\InvalidBirthDateException $e) {\n    echo('Numer PESEL zawiera nieprawdiłową datę urodzenia');\n}\n```\n\nWszystkie powyższe wyjątki dziedziczą z `Pesel\\Exceptions\\PeselValidationException` więc jeżeli niepotrzebne jest \nrozróżnienie na konkretne błędy walidacji można zastosować jedną klauzulę `catch`:\n```php\ntry {\n    Pesel::create($number);\n\n    echo('Numer PESEL jest poprawny');\n} catch(\\Pesel\\Exceptions\\PeselValidationException $e) {\n    echo('Numer PESEL jest błędny');\n}\n```\n##### Pobieranie zawartości numeru PESEL:\n```php\n$pesel = new Pesel($number);\n\n$pesel-\u003egetNumber();    // Zwraca string\n\n$pesel-\u003egetBirthDate(); // Zwraca DateTime\n\n$pesel-\u003egetGender();    // Zwraca Pesel::GENDER_MALE lub Pesel::GENDER_FEMALE\n```\n##### Sprawdzenie poprawności:\n```php\nPesel::isValid($pesel); // Zwraca bool, nie rzuca wyjątku\n```\n\n##### Sprawdzenie daty urodzenia:\n\nParametr `$birthDate` jest instancją wbudowanej w PHP klasy DateTime\n```php\nPeselValidator::hasBirthDate(Pesel::create($pesel), $birthDate);\n```\n\n##### Sprawdzenie płci\n```php\nPeselValidator::hasGender(Pesel::create($pesel), Pesel::GENDER_MALE);\n\nPeselValidator::hasGender(Pesel::create($pesel), Pesel::GENDER_FEMALE);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkkszymanowski%2Fpesel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkkszymanowski%2Fpesel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkkszymanowski%2Fpesel/lists"}