Skip to content

fix(config): read env settings reliably, add a README and a CI - #36

Merged
Amorfx merged 4 commits into
mainfrom
fix/boilerplate-config
Oct 12, 2026
Merged

Amorfx merged 4 commits into
mainfrom
fix/boilerplate-config

Conversation

@Amorfx

@Amorfx Amorfx commented Oct 12, 2026

Copy link
Copy Markdown
Owner

Contexte

Étape 6a de la feuille de route : corriger le boilerplate et lui donner un README et une CI. config/application.php avait plusieurs défauts :

  • DISABLE_WP_CRON=false et WP_POST_REVISIONS=false étaient définis avec la chaîne 'false', une valeur vraie : le cron était désactivé ;
  • une variable DB_HOST, DB_CHARSET, DB_PREFIX ou APP_DEBUG absente provoquait des warnings ;
  • APP_DEBUG=1 était lu comme faux ;
  • WP_SITEURL n'avait pas de valeur par défaut, alors que WordPress est installé dans web/wp.

Changements

config/application.php

  • Les réglages booléens (DISABLE_WP_CRON, APP_DEBUG) comprennent true/false/1/0/on/off.
  • WP_POST_REVISIONS accepte true, false ou un nombre, converti en entier.
  • WP_SITEURL vaut WP_HOME/wp par défaut, et la valeur du .env reste prioritaire.
  • DB_NAME, DB_USER, DB_PASSWORD et DB_PREFIX sont obligatoires, avec une erreur explicite. Un mot de passe vide reste accepté.

Fichiers du dépôt

  • .env.example : WP_HOME avec son schéma, WP_SITEURL=${WP_HOME}/wp, DB_CHARSET=utf8mb4.
  • bin/console : exécutable, avec un commentaire exact.
  • En-tête de load.php corrigé.
  • Renovate : config:recommended, et lock régénéré sous PHP 8.2.
  • README réécrit : prérequis, démarrage rapide, structure, commandes, mise à jour.
  • CI sur PHP 8.2, 8.3 et 8.4 : validation Composer, installation, lint, et 15 cas de configuration.
  • .github/ est exclu de l'archive Composer : il n'est pas copié dans les projets créés.

⚠️ Comportements qui changent pour un projet existant

  • DB_PREFIX, DB_NAME, DB_USER et DB_PASSWORD doivent être définis. Sans DB_PREFIX, le site utilisait auparavant des tables sans préfixe, et risquait de basculer en silence vers d'autres tables.
  • DISABLE_WP_CRON=false réactive bien le cron.
  • APP_DEBUG=1, on ou yes activent WP_DEBUG.
  • Un DB_HOST= ou DB_CHARSET= vide n'est plus remplacé par la valeur par défaut.
  • WP_SITEURL vaut WP_HOME/wp s'il n'est pas défini.

Vérification

  • .github/tests/application-config.php : 15 cas, chacun dans un processus PHP séparé avec son propre .env. Tous échouaient ou manquaient avant la correction. Ils passent tous sur PHP 8.2, 8.3 et 8.4.
  • Le lint échoue bien sur un fichier volontairement cassé (l'ancienne commande find -exec renvoyait 0).
  • Site WordPress de test avec le nouveau application.php : tous les scripts de vérification passent, et DISABLE_WP_CRON vaut bool(false).

🤖 Generated with Claude Code

Amorfx and others added 4 commits October 13, 2026 00:10
DISABLE_WP_CRON=false and WP_POST_REVISIONS=false were defined as the
string 'false', which is truthy and disabled the cron. Missing DB_HOST,
DB_CHARSET, DB_PREFIX or APP_DEBUG raised warnings, APP_DEBUG=1 meant no
debug, WP_SITEURL had no default for the web/wp layout, and the database
credentials are now required.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… Renovate locks on PHP 8.2

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ke the CI lint fail on errors

WP_POST_REVISIONS=1 was read as the boolean true (unlimited revisions).
A silent wp_ default for a missing DB_PREFIX could point an existing site
to other tables. find -exec ignored the exit code of php -l.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Amorfx
Amorfx merged commit 358bb16 into main Oct 12, 2026
3 checks passed
@Amorfx
Amorfx deleted the fix/boilerplate-config branch October 12, 2026 22:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant