Aller au contenu

ADR-006 — Domain without WordPress

Statut

Accepted.

Contexte

Le legacy contient une logique métier de haute valeur dans includes/platform/domain-core.

Cette logique est encore encapsulée dans un contexte WordPress :

  • garde ABSPATH ;
  • chargements require_once ;
  • fonctions globales procédurales ;
  • absence d'interfaces explicites.

Cela ne remet pas en cause la qualité métier, mais empêche le Domain d'être totalement indépendant.

Décision

Le Domain de CMonChoix Platform V2 doit être indépendant de WordPress.

Le Domain ne doit jamais dépendre de :

  • WordPress ;
  • SQL ;
  • Runtime ;
  • Pipeline ;
  • Frontend ;
  • Admin ;
  • CLI ;
  • HTTP ;
  • Docker ;
  • fichiers système.

Règles

Le Domain expose des concepts, policies et domain services.

Il ne gère jamais :

  • son chargement ;
  • son bootstrap ;
  • son stockage ;
  • son affichage ;
  • ses appels réseau ;
  • son exécution WordPress.

Cible

Les fonctions procédurales legacy seront progressivement transformées en responsabilités explicites :

  • Candidate Factory ;
  • Canonical Identity Factory ;
  • Candidate Selection Policy ;
  • Identity Resolver ;
  • Projection Builder ;
  • Quality Evaluator ;
  • Conflict Policies.

Conséquences

Le code legacy n'est pas modifié immédiatement.

La migration se fera responsabilité par responsabilité.

Le legacy reste source de connaissance.

La Platform cible devient indépendante, testable et portable.

Classification

  • Logique métier legacy : KEEP / MIGRATE
  • Couplage WordPress : REWRITE
  • ABSPATH dans Domain cible : INTERDIT
  • require_once dans Domain cible : INTERDIT
  • fonctions globales dans Domain cible : À remplacer progressivement