Contribuer
Nous accueillons les contributions de toutes sortes — rapports de bugs, améliorations de documentation, propositions de fonctionnalités et code. Cette page résume le processus. Pour l'accord de contributeur complet et les directives détaillées, consultez CONTRIBUTING.md sur GitHub.
Configuration du développement
Prérequis
| Prérequis | Version minimale |
|---|---|
| PHP | 8.5+ |
| Composer | 2.x |
| PHPUnit | 12.x |
| PHPStan | 2.x |
Démarrage
# Cloner le dépôt
git clone https://github.com/yeeefang/tcpdf-next.git
cd tcpdf-next
# Installer les dépendances
composer install
# Vérifier que tout fonctionne
composer testExécuter les tests
TCPDF-Next utilise PHPUnit 12 avec des suites séparées pour les tests unitaires et d'intégration.
# Exécuter la suite de tests complète
composer test
# Exécuter uniquement les tests unitaires (rapide, sans I/O)
composer test:unit
# Exécuter uniquement les tests d'intégration (sortie fichier, chargement polices, etc.)
composer test:integrationTous les tests doivent passer avant qu'une pull request puisse être fusionnée. Le pipeline CI exécute la suite complète à chaque push.
Analyse statique
La base de code est analysée avec PHPStan au Level 10 (le niveau le plus strict) :
composer analyseZéro erreur n'est toléré. Si votre changement introduit une erreur PHPStan, le build CI échouera.
Exigences de style de code
declare(strict_types=1)en haut de chaque fichier PHP.- Conformité PHPStan Level 10 — aucune exception de baseline pour le nouveau code.
- Classes
readonlypréférées partout où l'état mutable n'est pas requis. - Backed enums pour tous les ensembles finis de valeurs (pas de chaînes magiques ou constantes entières).
- Paramètres nommés dans les méthodes d'API publiques pour la clarté.
- Pas de types
mixed— chaque paramètre, type de retour et propriété doit être explicitement typé. - Final par défaut — les classes sont
finalsauf si conçues pour l'extension.
Processus de pull request
Forker le dépôt et créer une branche de fonctionnalité depuis
main.Écrire les tests d'abord — TCPDF-Next suit un workflow orienté TDD. Les nouvelles fonctionnalités et corrections de bugs doivent inclure des tests correspondants.
Garder les commits focalisés — un changement logique par commit. Écrire des messages de commit clairs.
Exécuter la suite de vérification complète avant de pousser :
bashcomposer analyse && composer testOuvrir une pull request contre
main. Remplir le template PR avec :- Une description du changement et sa motivation.
- Liens vers les issues liées (utiliser la syntaxe
Closes #123). - Tous changements cassants ou notes de migration.
Répondre aux retours de revue — les mainteneurs peuvent demander des changements. Veuillez adresser ou discuter chaque commentaire.
Signaler des bugs
Ouvrez une GitHub Issue avec :
- Version PHP et OS.
- Version TCPDF-Next (
composer show yeeefang/tcpdf-next). - Code de reproduction minimal.
- Comportement attendu vs. réel.
Vulnérabilités de sécurité
Ne signalez pas les problèmes de sécurité via les GitHub Issues publiques. Utilisez plutôt GitHub Security Advisories. Consultez la FAQ pour plus de détails.
Merci
Chaque contribution rend TCPDF-Next meilleur. Que vous corrigiez une faute de frappe dans la documentation ou implémentiez une fonctionnalité majeure, votre temps et votre effort sont sincèrement appréciés.