Frontière WordPress¶
Status: NORMATIVE / CONTRACT
Décision¶
WordPress est le CMS, la couche SEO et l'adaptateur de présentation publique de CMonChoix.
WordPress n'est pas le moteur catalogue, n'est pas le runtime métier et n'est pas l'autorité des décisions produit.
La règle fondamentale est :
WordPress -> src/ : autorisé
src/ -> WordPress : interdit
Le Core de la plateforme doit rester exécutable sans cycle HTTP WordPress, sans ABSPATH, sans fonctions wp_*, sans $wpdb et sans chargement du plugin.
Propriété des responsabilités¶
| Responsabilité | Platform src/ |
WordPress |
|---|---|---|
| ingestion marchands | oui | non |
| téléchargement / parsing feeds | oui | non |
| normalisation | oui | non |
| classification | oui | non |
| identité produit / variantes | oui | non |
| qualité / scoring | oui | non |
| prix / disponibilité métier | oui | non |
| règles de sélection média | oui | non |
| catalogue / projections | oui | non |
| indexation recherche | oui | non |
| workers / jobs / queues | oui | non |
| synchronisation / replay | oui | non |
| audits et migrations métier | oui | non |
| health métier | oui | non |
| routing public | contrat éventuel | oui |
| canonical URLs publiques | contrat | oui |
| templates / HTML | non | oui |
| CSS / JS de présentation | non | oui |
| contenu éditorial | non | oui |
| SEO metadata / sitemap | données préparées | oui |
| Schema.org de présentation | données préparées | oui |
| navigation utilisateur | read model | oui |
Test de placement¶
Avant d'ajouter du code au plugin ou au thème, poser la question :
Cette capacité doit-elle continuer à fonctionner si WordPress est supprimé demain ?
Si la réponse est oui, la responsabilité appartient à la Platform et doit être placée dans src/ dans la couche appropriée.
Si la réponse est non uniquement parce que la responsabilité est intrinsèquement un concept WordPress — hook, template, écran CMS, SEO WordPress, routing public — elle peut rester dans l'adapter WordPress.
Flux cible¶
Merchant feeds
↓
Adapters source
↓
Application / Pipeline
↓
Domain / Vertical knowledge
↓
Persistence + projections
↓
Read Services
↓
WordPress adapter
↓
Templates / SEO / CMS / pages publiques
WordPress consomme un résultat déjà décidé. Il ne doit pas reconstruire la vérité métier pour afficher une page.
Ce qui est interdit dans la cible¶
- nouvelle normalisation métier dans le plugin WordPress ;
- règle de classification dans un fichier protégé par
ABSPATH; - heuristique marchand dans un template ou hook de présentation ;
- résolution d'identité depuis WordPress ;
- scoring catalogue dans WordPress ;
- SQL métier direct depuis les templates ;
$wpdbcomme API métier ;- import ou rebuild critique dépendant exclusivement de WP-Cron ;
- dépendance de
src/Domainousrc/Applicationvers WordPress ; - dépendance de
src/versplugins/ccx-feeds-industrial/pour fournir une règle métier ; - duplication d'une décision Platform dans le thème ou le plugin.
Compatibilité CURRENT¶
Le plugin contient encore des responsabilités historiques de pipeline, mapping, classification, identité, qualité ou orchestration. Leur présence peut être nécessaire au Runtime CURRENT pendant la migration.
Ces zones doivent être considérées TRANSITIONAL dès qu'elles portent une responsabilité qui devrait fonctionner sans WordPress.
Aucune nouvelle règle métier ne doit y être ajoutée. Les évolutions fonctionnelles doivent viser le propriétaire canonique sous src/, puis conserver si nécessaire un wrapper WordPress mince le temps de migrer les consommateurs.
$wpdb¶
L'accès à la base WordPress peut subsister dans un adapter d'infrastructure WordPress pendant la transition.
Il doit être caché derrière un port ou un service de persistance explicite. Les services Application et Domain ne doivent pas connaître $wpdb.
Cible :
Application port
↑
Infrastructure adapter WordPress / SQL
↑
$wpdb
et jamais :
Domain/Application -> $wpdb
Workers¶
Les workers métier doivent converger vers des exécutables Platform capables de tourner sans charger WordPress.
WP-CLI peut rester temporairement un adapter opérateur, mais ne doit pas être la seule manière structurelle d'exécuter ingestion, normalisation, projections ou maintenance métier.
Certification obligatoire¶
L'indépendance WordPress n'est pas certifiée par la documentation seule.
Une certification doit démontrer qu'un scénario représentatif peut exécuter au minimum :
fixture source
-> ingestion
-> normalisation
-> classification
-> identity
-> quality
-> persistence contract
-> projection
sans WordPress chargé.
Voir Certification Platform.
Checklist de revue WordPress¶
Avant fusion d'un changement touchant WordPress :
- est-ce réellement de la présentation, du CMS ou du SEO ?
- la même règle pourrait-elle être utilisée par un worker, une API ou un autre frontend ?
- le résultat existe-t-il déjà dans une projection ou un Read Service ?
- le changement introduit-il
ABSPATH,wp_*ou$wpdbautour d'une décision métier ? - remplacer WordPress obligerait-il à réécrire cette fonctionnalité ?
Si une réponse révèle une propriété métier, le changement appartient à la Platform, pas à WordPress.
Critère final¶
WordPress doit être remplaçable comme couche publique sans réécrire le catalogue, l'identité, les feeds, les syncs, les workers, la qualité ou les projections.