Catalogue des standards et normes appliqués
Référentiel des standards officiels de référence pour un projet web PHP moderne. Ce document liste les normes, leur périmètre d'application et le niveau de conformité visé. Il sert de source unique pour l'alignement des équipes et l'audit de conformité.
Chaque entrée pointe vers la spécification officielle publique. Les conventions internes propres à un projet (règles de style, seuils de qualité) sont maintenues à part et étendent — sans jamais contredire — ces standards.
PHP — PSR (PHP Standards Recommendations)
Standards publiés par le PHP-FIG (PHP Framework Interoperability Group).
| PSR | Titre | Périmètre | Niveau |
|---|---|---|---|
| PSR-1 | Basic Coding Standard | Tags PHP, encodage (UTF-8), namespace, nommage (PascalCase / camelCase) | Obligatoire |
| PSR-4 | Autoloader Standard | Correspondance namespace ↔ chemin de fichier | Obligatoire |
| PSR-12 | Extended Coding Style | Indentation (4 espaces), accolades, déclarations, imports | Obligatoire |
| PSR-3 | Logger Interface | Interface LoggerInterface (via bibliothèque de logging) |
Appliqué via le framework |
| PSR-7 | HTTP Message Interface | Requêtes / réponses HTTP | Appliqué via le framework |
| PSR-11 | Container Interface | Injection de dépendances | Appliqué via le framework |
| PSR-15 | HTTP Server Request Handlers | Middleware / handlers | Appliqué via le framework |
Outillage recommandé : un formateur automatique (type PHP CS Fixer) configuré sur PSR-12 plus le ruleset du framework retenu, et un analyseur statique (type PHPStan / Psalm) pour la vérification en amont.
Référence : php-fig.org/psr
Conventions de framework
Un framework PHP majeur étend généralement PSR-12 avec ses propres conventions. Points typiques à cadrer :
- Configuration des routes, services et règles de sécurité via attributs PHP 8.
- Déclaration des services par configuration explicite ou autowiring.
- Nommage des entités de persistance (ORM) : PascalCase, sans préfixe de type.
- Templates : convention de nommage et suffixe d'extension homogènes.
Se référer aux « coding standards » officiels du framework utilisé et les intégrer au ruleset du formateur.
Accessibilité
WCAG 2.1 — Niveau AA
Web Content Accessibility Guidelines du W3C. Structurées autour de quatre principes.
| Principe | Contenu |
|---|---|
| Perceptible | Alternatives textuelles, adaptation temporelle, contenu adaptable, distinguable |
| Utilisable | Accès clavier, temps suffisant, pas de contenu à risque (convulsions), navigable |
| Compréhensible | Lisible, prévisible, aide à la saisie |
| Robuste | Compatible avec les agents utilisateurs et technologies d'assistance |
Cible recommandée pour toutes les interfaces (publiques et back-office) : WCAG 2.1 niveau AA.
Référence : w3.org/TR/WCAG21
RGAA 4.1
Référentiel Général d'Amélioration de l'Accessibilité — cadre français basé sur WCAG 2.1, utile pour tout projet à destination du public en France. Niveau visé : AA.
Référence : accessibilite.numerique.gouv.fr/RGAA
Périmètre couvert : API, contenus éditoriaux, publications numériques et interface utilisateur.
HTML / CSS
| Standard | Niveau | Remarque |
|---|---|---|
| HTML5 (Living Standard) | Obligatoire | Validation W3C sur les gabarits principaux |
| CSS3 | Appliqué | Aucune propriété non standard sans préfixe documenté |
| ARIA 1.2 | Appliqué | Rôles, états et propriétés sur les composants interactifs |
Markdown
Format CommonMark (spécification officielle), avec les extensions GFM (GitHub Flavored Markdown) pour les tableaux et les cases à cocher.
- Encodage : UTF-8 sans BOM
- Fins de ligne : LF
- Frontmatter : YAML (délimiteur
---)
Référence : spec.commonmark.org
Sécurité HTTP
Ensemble minimal d'en-têtes et mécanismes à appliquer côté serveur et applicatif. Les valeurs exactes (durées, directives) sont à définir par projet dans la configuration serveur.
| Mécanisme | Standard | Application |
|---|---|---|
| TLS 1.2 / 1.3 | RFC 5246 / RFC 8446 | Obligatoire en production ; certificat via autorité reconnue |
| HSTS | RFC 6797 | En-tête Strict-Transport-Security avec une durée longue et couverture des sous-domaines |
| CSP | W3C Content Security Policy Level 3 | En-tĂŞte Content-Security-Policy sur l'ensemble des routes |
| X-Frame-Options | RFC 7034 | Valeur restrictive par défaut (DENY) |
| CSRF | OWASP Top 10 | Jeton anti-CSRF sur tous les formulaires en POST |
| Rate limiting | OWASP | Limitation de débit sur les surfaces sensibles (authentification, API) |
Le détail opérationnel (configuration serveur, valeurs exactes) relève des runbooks internes et n'a pas vocation à être public.
Git — Conventional Commits
Format normalisé des messages de commit.
<type>(<scope>): <description>
Types courants :
| Type | Usage |
|---|---|
feat |
Nouvelle fonctionnalité |
fix |
Correction de bug |
chore |
Tâche de maintenance (dépendances, CI, configuration) |
docs |
Documentation uniquement |
refactor |
Refactorisation sans changement de comportement |
test |
Ajout ou modification de tests |
perf |
Amélioration de performance |
style |
Formatage (pas de changement logique) |
Conventions à figer par projet : langue des messages et modèle de branches (par exemple une branche de travail courant et une branche stable / production).
Référence : conventionalcommits.org
EPUB
Standard EPUB 3 (W3C) pour les publications numériques accessibles.
Référence : w3.org/publishing/epub3
Voir aussi
- Règles de style internes du projet (non-négociables PHP / framework).
- Référentiel qualité documentaire.
- Documentation d'accessibilité détaillée.