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
| Requisito | Versione Minima |
|---|---|
| PHP | 8.5+ |
| Composer | 2.x |
| PHPUnit | 12.x |
| PHPStan | 2.x |
Iniziare
# Clona il repository
git clone https://github.com/yeeefang/tcpdf-next.git
cd tcpdf-next
# Installa dipendenze
composer install
# Verifica che tutto funzioni
composer testEsecuzione Test
TCPDF-Next usa PHPUnit 12 con suite separate per test unit e integrazione.
# 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:integrationTutti 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):
composer analyseZero 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
readonlypreferite 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
finala meno che progettate per estensione.
Processo Pull Request
Fork il repository e crea un feature branch da
main.Scrivi prima i test — TCPDF-Next segue un workflow orientato TDD. Nuove funzionalità e bug fix devono includere test corrispondenti.
Mantieni commit focalizzati — una modifica logica per commit. Scrivi messaggi commit chiari.
Esegui la suite di controllo completa prima di pushare:
bashcomposer analyse && composer testApri 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.
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.