# Playground associé à wp-env pour valider une extension sans serveur dédié

> Deux outils complémentaires pour vérifier rapidement la compatibilité d'une extension, sans jamais monter d'environnement complet.

- Auteur : Clément Hadrot
- Publié le : 2026-02-25
- Mis à jour le : 2026-02-25
- Catégorie : Hébergement &amp; serveurs
- URL : https://wpmoderne.dev.wordpress-developpement.fr/hebergement/playground-wp-env-valider-extension-sans-serveur/

## L’essentiel

- Playground tourne entièrement dans le navigateur, sans serveur
- wp-env reste indispensable pour les tests qui touchent au système de fichiers
- Les deux outils se combinent selon la nature du test recherché

`npx @wp-playground/cli server` : cette seule commande suffit à faire tourner une instance WordPress complète, exécutée via WebAssembly directement dans le navigateur ou dans un environnement Node local, sans base de données MySQL classique et sans le moindre serveur à configurer. Pour un développeur d'extension qui veut vérifier rapidement une compatibilité avant de publier une mise à jour, c'est un gain de temps considérable par rapport au montage d'un environnement complet.

## Ce que Playground permet réellement

WordPress Playground exécute PHP compilé en WebAssembly et utilise SQLite à la place de MySQL, via la couche de compatibilité fournie par l'extension officielle correspondante. Cette architecture rend le démarrage quasi instantané, mais impose aussi des limites : certaines fonctions PHP liées au système de fichiers natif ou à des extensions PHP compilées ne sont pas disponibles dans cet environnement.

```
npx @wp-playground/cli server --php=8.2 --wp=6.7 \
  --mount=./mon-extension:/wordpress/wp-content/plugins/mon-extension
```

Cette commande monte le répertoire local de l'extension directement dans l'instance Playground, ce qui permet de tester chaque modification de code sans réimporter quoi que ce soit à chaque cycle.

## Ce que wp-env apporte en complément

wp-env, à l'inverse, fait tourner une vraie instance WordPress dans des conteneurs Docker, avec MySQL réel et un système de fichiers persistant classique. Certains tests, en particulier ceux qui portent sur les tâches Cron réelles, les écritures de fichiers volumineux, ou l'intégration avec un vrai serveur de messagerie sortant, nécessitent cet environnement complet que Playground ne peut pas reproduire fidèlement.

> L'essentiel à retenir : Playground tourne entièrement dans le navigateur, sans serveur ; wp-env reste indispensable pour les tests qui touchent au système de fichiers ; Les deux outils se combinent selon la nature du test recherché

## Une stratégie de test à deux niveaux

La méthode la plus efficace consiste à traiter Playground comme un premier filtre rapide, exécuté à chaque modification de code, et wp-env comme validation finale avant publication :

- Playground pour vérifier l'absence d'erreur fatale au chargement de l'extension, sur plusieurs versions de PHP et de WordPress successivement ;
- Playground pour tester l'interface d'administration de l'extension sans configuration préalable ;
- wp-env pour valider tout ce qui touche aux tâches planifiées, aux emails ou aux écritures disque réelles ;
- wp-env pour exécuter la suite de tests PHPUnit complète avant publication sur le répertoire officiel.

### Automatiser la matrice de compatibilité

Playground se prête particulièrement bien à un test automatisé sur plusieurs combinaisons de versions, exécuté en amont de chaque publication :

```
for php in 8.1 8.2 8.3; do
  npx @wp-playground/cli server --php=$php --wp=6.7 \
    --mount=./mon-extension:/wordpress/wp-content/plugins/mon-extension \
    --blueprint=./blueprint-test.json
done
```

Un fichier `blueprint.json` décrit les étapes à exécuter automatiquement dans l'instance Playground dès son démarrage : activation de l'extension, création d'un contenu de test, vérification de l'absence d'erreur dans les journaux.

## Les limites à connaître avant de se fier uniquement à Playground

Une extension qui fonctionne parfaitement sous Playground peut encore échouer en production si elle dépend d'une extension PHP native absente de la compilation WebAssembly, ou si elle suppose l'existence d'un vrai système de fichiers persistant entre deux requêtes. Ce constat ne remet pas en cause l'intérêt de l'outil, mais rappelle qu'il ne remplace pas totalement un test sous wp-env avant publication.

> Un principe adopté sur nos projets d'extension : Playground pour aller vite à chaque commit, wp-env pour la validation qui compte vraiment, juste avant la mise en ligne d'une nouvelle version.

## En résumé

Playground et wp-env ne sont pas concurrents mais complémentaires : le premier élimine en quelques secondes les incompatibilités les plus grossières sur une large matrice de versions, le second confirme, dans un environnement fidèle à la production, que l'extension se comporte correctement une fois publiée.
