Contribuer¶
Mise en place de l'environnement¶
Suivez la page Installation du portail.
Vérification rapide que tout fonctionne :
Branches¶
La branche d'intégration est main. Aucun développement n'y est poussé directement.
| Préfixe | Usage |
|---|---|
feature/ |
Nouvelle fonctionnalité |
fix/ |
Correction de bug |
hotfix/ |
Correction urgente en production |
release<n>/ |
Préparation d'une version |
Créez votre branche depuis main à jour :
Messages de commit¶
Le dépôt suit la convention Conventional Commits :
Types employés : feat, fix, hotfix, refactor, docs, test, chore.
Exemples tirés de l'historique :
feat: add script for trafik tracker in base
fix: disable contraint in bcard
fixes(physicalCard) disable verification pro/entreprise user
Conventions de code¶
PHP¶
- PSR-12, indentation à 4 espaces.
- Typage strict des propriétés, paramètres et retours dès que possible.
- Injection de dépendances par le constructeur, en
private readonly. - Attributs PHP 8 pour les routes (
#[Route]) et le contrôle d'accès (#[IsGranted]), jamais les annotations de docblock.
Contrôleurs¶
- Un contrôleur reste mince : la logique métier appartient aux services (
src/Service/). - Les requêtes complexes appartiennent aux repositories, pas aux contrôleurs.
- Toute suppression déclenchée par formulaire doit vérifier un jeton CSRF.
Sécurité¶
- Contrôler l'accès et la propriété de la ressource : un
#[IsGranted]de rôle ne suffit pas à empêcher un utilisateur d'agir sur les données d'un autre. - Ne jamais exposer d'identifiant séquentiel dans une URL publique : les cartes utilisent un
publicHash. - Aucun secret dans le code ni dans un fichier versionné. Tout passe par des variables d'environnement.
Documentation¶
Toute nouvelle classe et toute nouvelle méthode publique doit être documentée selon les conventions décrites dans generer-la-doc.md : docblocks en français, route complète, rôle requis, effets de bord et cas d'erreur.
Base de données¶
Ne modifiez jamais le schéma à la main. Après un changement d'entité :
Relisez la migration générée avant de la committer : Doctrine produit parfois des instructions destructrices non souhaitées.
Tests¶
Les tests vivent dans tests/. Une correction de bug s'accompagne idéalement d'un test qui
échoue avant le correctif.
Avant d'ouvrir une merge request¶
- [ ]
php bin/phpunitpasse - [ ]
php bin/console cache:clears'exécute sans erreur - [ ] Les nouvelles classes et méthodes sont documentées
- [ ] Aucun secret, clé d'API ou mot de passe n'apparaît dans le diff
- [ ] Les migrations éventuelles sont incluses et relues
- [ ] Le message de commit respecte la convention