Le WordPress d'aujourd'hui, décodé pour les développeurs

Hébergement & serveurs

wp-env, l’outil officiel de WordPress pour un Docker sans configuration

Maintenu par l'équipe du cœur de WordPress, wp-env lance un environnement complet en une commande, sans écrire soi-même de fichier Docker Compose.

Par WordPress Développement • 2 mai 2024 • 4 min de lecture • Aucun commentaire
wp-env, l'outil officiel de WordPress pour un Docker sans configuration

D’après la documentation officielle du projet, @wordpress/env est décrit comme « un outil en ligne de commande qui simplifie la mise en place d’environnements de développement WordPress locaux, basés sur Docker ». Cette phrase résume bien ce que l’outil apporte : il ne remplace pas Docker, il en masque presque toute la configuration pour un cas d’usage précis, celui du développement WordPress.

Avant wp-env, monter un environnement local reproductible impliquait d’écrire soi-même un fichier docker-compose.yml, de choisir une image PHP compatible, de brancher MySQL, et de recâbler WP-CLI par-dessus. Ce travail se refaisait, avec de petites variations, sur chaque nouveau projet. Maintenu directement par l’équipe du cœur de WordPress, wp-env part du principe que ce travail devrait être fait une fois pour toutes et partagé par l’ensemble de l’écosystème.

Démarrer un environnement en une commande

L’installation ne nécessite qu’un accès à Docker déjà installé sur la machine et Node.js pour exécuter l’outil via npx, sans installation globale préalable :

npx @wordpress/env start

Cette seule commande, exécutée à la racine d’un dossier d’extension ou de thème, télécharge les images nécessaires, démarre un conteneur WordPress avec la dernière version stable, un conteneur MySQL, et monte automatiquement le dossier courant comme extension ou thème actif selon la présence d’un fichier style.css ou d’un en-tête de plugin détecté. Le site est ensuite accessible sur http://localhost:8888, avec des identifiants d’administration par défaut documentés (admin / password).

Le fichier .wp-env.json pour les cas moins simples

L'essentiel à retenir : Une seule commande npx suffit à démarrer un environnement complet ; Le fichier .wp-env.json reste optionnel pour les cas simples ; wp-env repose sur Docker mais en masque toute la configuration

Pour un projet qui dépend de plusieurs extensions ou d’un thème additionnel, un fichier .wp-env.json à la racine du projet permet de déclarer ces dépendances sans quitter la logique « zéro configuration lourde » de l’outil :

{
  "core": "WordPress/WordPress#trunk",
  "phpVersion": "8.2",
  "plugins": [
    ".",
    "https://downloads.wordpress.org/plugin/query-monitor.zip"
  ],
  "themes": [
    "https://downloads.wordpress.org/theme/twentytwentyfour.zip"
  ],
  "config": {
    "WP_DEBUG": true,
    "WP_DEBUG_LOG": true
  }
}

Le champ core permet même de pointer vers une branche précise du dépôt officiel de WordPress, ce qui rend wp-env particulièrement utile pour tester une extension contre la version en développement du cœur, avant une sortie majeure.

WP-CLI directement intégré

Un environnement wp-env embarque WP-CLI sans installation additionnelle, accessible via la sous-commande dédiée :

npx @wordpress/env run cli wp plugin list
npx @wordpress/env run cli wp user create redacteur redacteur@example.com --role=editor

Cette intégration évite d’avoir à se connecter en SSH dans le conteneur pour exécuter une commande WP-CLI ponctuelle, un geste qui alourdit sensiblement les allers-retours pendant une session de débogage.

Ce que wp-env ne cherche pas à remplacer

Il serait exagéré de présenter wp-env comme une solution universelle. L’outil vise explicitement le développement local d’extensions et de thèmes, pas la reproduction fidèle d’un environnement de production avec son cache objet, son CDN ou sa configuration serveur spécifique. Pour un test de charge ou une validation de configuration Nginx, un environnement de préproduction plus proche de la production réelle reste indispensable ; wp-env sert avant tout à vérifier qu’un code fonctionne, pas à mesurer comment il se comporte sous trafic.

Comparer avec une configuration Docker manuelle

Critèrewp-envDocker Compose manuel
Temps de mise en placeQuelques minutesPlusieurs heures la première fois
Contrôle fin de la configurationLimité au fichier .wp-env.jsonTotal
Maintenance dans le tempsAssurée par l’équipe du cœurÀ la charge de l’équipe projet
Adapté à la productionNon, usage local uniquementPossible avec adaptation

wp-env ne cherche pas à tout permettre : il vise le cas le plus fréquent, un développeur qui veut tester son code sans y passer sa matinée.

Nettoyer un environnement devenu inutile

Un environnement wp-env se supprime aussi simplement qu’il se crée, ce qui encourage à en recréer un neuf plutôt que de s’acharner à déboguer un état local devenu incohérent après plusieurs mois d’utilisation :

npx @wordpress/env destroy

En résumé

wp-env répond à un besoin précis et récurrent, celui d’un développeur qui veut tester une extension ou un thème sans configurer lui-même Docker à chaque nouveau projet. Son adoption par l’équipe du cœur de WordPress lui donne une longévité que peu d’outils communautaires équivalents peuvent garantir, mais son périmètre reste volontairement limité au développement local, loin des préoccupations d’un environnement de production sous charge réelle.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi