Przejdź do głównej zawartości

Współtworzenie

  1. Utwórz fork i sklonuj

    Okno terminala
    git clone https://github.com/sqrcz/numerik.git
    cd numerik
  2. Zainstaluj zależności PHP

    Okno terminala
    composer install
  3. Uruchom zestaw testów

    Okno terminala
    composer test
PolecenieOpis
composer testZestaw testów PHPUnit
composer test:coverPHPUnit z raportami pokrycia HTML + Clover
composer stanPHPStan na poziomie 10
composer cs-fixPHP CS Fixer — automatyczne formatowanie kodu
composer cs-checkPHP CS Fixer — tylko sprawdzanie (używane w CI)
composer mutationTesty mutacyjne Infection
composer checkcs-check + stan + test po kolei

Uruchom composer check przed otwarciem PR, aby wykryć wszystkie problemy lokalnie.

Dodanie nowego identyfikatora (np. Dowód Osobisty, IBAN PL) wymaga zmian w kilku miejscach:

  • Utwórz src/ValueObjects/NewIdentifier.php (klasa readonly implementująca IdentifierInterface)
  • Utwórz src/Identifiers/NewIdentifierIdentifier.php (implementuje ValidatorInterface i ParserInterface; przyjmuje bool $strict = true)
  • Dodaj nowe przypadki ValidationFailureReason jeśli identyfikator wprowadza nowe typy błędów
  • Dodaj metodę fabryczną do src/Numerik.php (Numerik::newIdentifier(bool $strict = true))
  • Dodaj tests/Fixtures/NewIdentifierFixtures.php z metodami statycznymi ::valid() i ::invalid()
  • Dodaj testy jednostkowe walidatora, parsera i obiektu wartości
  • Dodaj stronę identyfikatora w docs/src/content/docs/identifiers/ i docs/src/content/docs/pl/identifiers/
  • Zaktualizuj CHANGELOG.md

Używaj Conventional Commits:

feat: add Dowód Osobisty validation
fix: correct PESEL checksum for 2100s birth dates
docs: update REGON algorithm description
test: add NIP fixtures for invalid tax office codes
chore: update PHPStan to 2.x
  1. Utwórz gałąź od main (np. feature/dowod-osobisty).
  2. Wprowadź zmiany.
  3. Upewnij się, że composer check przechodzi.
  4. Otwórz PR względem main i wypełnij szablon.

Użyj szablonu Bug Report na GitHub.

Prosimy nie otwierać publicznego zgłoszenia. Zgłoś przez prywatny system zgłoszeń GitHub. Zobacz SECURITY.md.

If this saved you time → ☕ Buy me a coffee