Skip to content

Contribuire

Accogliamo contributi di ogni tipo — segnalazioni bug, miglioramenti documentazione, proposte funzionalità e codice. Questa pagina riassume il processo. Per l'accordo completo contributore e linee guida dettagliate, vedi CONTRIBUTING.md su GitHub.

Configurazione Sviluppo

Prerequisiti

RequisitoVersione Minima
PHP8.5+
Composer2.x
PHPUnit12.x
PHPStan2.x

Iniziare

bash
# Clona il repository
git clone https://github.com/yeeefang/tcpdf-next.git
cd tcpdf-next

# Installa dipendenze
composer install

# Verifica che tutto funzioni
composer test

Esecuzione Test

TCPDF-Next usa PHPUnit 12 con suite separate per test unit e integrazione.

bash
# Esegui la suite di test completa
composer test

# Esegui solo test unit (veloci, no I/O)
composer test:unit

# Esegui solo test integrazione (output file, caricamento font, ecc.)
composer test:integration

Tutti i test devono passare prima che una pull request possa essere merged. La pipeline CI esegue la suite completa ad ogni push.

Analisi Statica

Il codebase è analizzato con PHPStan a Level 10 (il livello più strict):

bash
composer analyse

Zero errori sono tollerati. Se la tua modifica introduce un errore PHPStan, il build CI fallirà.

Requisiti Stile Codice

  • declare(strict_types=1) in cima ad ogni file PHP.
  • PHPStan Level 10 compliance — nessuna eccezione baseline per nuovo codice.
  • Classi readonly preferite ovunque stato mutabile non è richiesto.
  • Backed enum per tutti gli insiemi finiti di valori (nessuna stringa magica o costante intera).
  • Parametri nominati nei metodi API pubblici per chiarezza.
  • Nessun tipo mixed — ogni parametro, tipo ritorno e proprietà deve essere esplicitamente tipizzato.
  • Final per impostazione predefinita — le classi sono final a meno che progettate per estensione.

Processo Pull Request

  1. Fork il repository e crea un feature branch da main.

  2. Scrivi prima i test — TCPDF-Next segue un workflow orientato TDD. Nuove funzionalità e bug fix devono includere test corrispondenti.

  3. Mantieni commit focalizzati — una modifica logica per commit. Scrivi messaggi commit chiari.

  4. Esegui la suite di controllo completa prima di pushare:

    bash
    composer analyse && composer test
  5. Apri una pull request contro main. Compila il template PR con:

    • Una descrizione della modifica e sua motivazione.
    • Link a issue correlate (usa sintassi Closes #123).
    • Eventuali modifiche breaking o note migrazione.
  6. Rispondi al feedback review — i maintainer potrebbero richiedere modifiche. Per favore affronta o discuti ogni commento.

Segnalazione Bug

Apri una GitHub Issue con:

  • Versione PHP e OS.
  • Versione TCPDF-Next (composer show yeeefang/tcpdf-next).
  • Codice riproduzione minimale.
  • Comportamento atteso vs. effettivo.

Vulnerabilità Sicurezza

Non segnalare issue di sicurezza tramite GitHub Issues pubbliche. Usa GitHub Security Advisories invece. Vedi le FAQ per dettagli.

Grazie

Ogni contributo rende TCPDF-Next migliore. Che tu corregga un typo nei docs o implementi una funzionalità major, il tuo tempo e sforzo sono genuinamente apprezzati.

Rilasciato sotto licenza LGPL-3.0-or-later.