Merci de votre intérêt pour le projet Tarot ! Ce document explique comment contribuer efficacement.
- DDEV installé et fonctionnel
- PHP 8.3+
- Node.js 20+
- Git
Suivez les instructions du README.md pour cloner le projet et démarrer l'environnement DDEV.
- Ordre alphabétique : assignations constructeur, clés de tableaux associatifs, clés YAML (chaque niveau)
- DRY : extraire à 3+ occurrences (ou 2 si complexe)
- Identifiants : en anglais (variables, fonctions, classes)
- Textes : en français (UI, commentaires, documentation)
- PHPStan niveau max — analyse statique stricte
- PHP CS Fixer avec les règles
@Symfonyet@Symfony:risky - Enums PHP pour tous les ensembles de valeurs fixes
- Groupes de sérialisation API Platform (pas de DTO custom sauf nécessité)
# Vérifier un fichier
ddev exec bash -c 'cd /var/www/html/backend && vendor/bin/phpstan analyse src/MonFichier.php'
# Corriger le style
ddev exec bash -c 'cd /var/www/html/backend && vendor/bin/php-cs-fixer fix src/MonFichier.php'- TypeScript en mode strict
- Composants fonctionnels uniquement
- Hooks custom pour les appels API (TanStack Query)
- Tailwind CSS 4 avec tokens de thème (jamais de couleurs en dur)
- Icônes via
lucide-react
- Ne jamais pousser sur
maindirectement. Tout passe par une branche + PR. - Nommage :
<type>/<numéro-issue>-<description>(ex.feat/12-star-system,fix/15-score-calc) - Une branche = une issue (correspondance 1:1)
- Brancher depuis
main, fusionner versmain
Format : <type>(scope): description
Types : feat, fix, chore, refactor, docs
Toujours référencer l'issue : ajouter #N dans le message ou fixes #N pour fermer automatiquement.
Stratégie squash merge — un seul commit par issue sur main.
- Vérifier les issues existantes pour éviter les doublons
- Utiliser les labels existants (
enhancement,bug, etc.) - Décrire clairement le problème ou la fonctionnalité souhaitée
- Ajouter des captures d'écran si pertinent
- TDD obligatoire : écrire les tests d'abord → ils doivent échouer → implémenter → les tests passent
- Lancer PHP CS Fixer sur tous les fichiers PHP modifiés avant de committer
- Titre de PR au format commit :
<type>(scope): description - Corps de PR : résumé +
fixes #N - Vérifier que les tests passent avant de demander une review
# Backend
ddev exec bin/phpunit
# Frontend
ddev exec bash -c 'cd /var/www/html/frontend && npm test'
# Build de production (vérifier l'absence de régression)
ddev exec bash -c 'cd /var/www/html/frontend && npm run build'