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

Hébergement & serveurs

Bedrock et Trellis pour déployer WordPress avec une arborescence modernisée

Composer, variables d'environnement séparées, structure de dossiers repensée : ce que change concrètement l'adoption de Bedrock et Trellis sur un projet WordPress.

Par WordPress Développement • 6 mai 2021 • 3 min de lecture • Aucun commentaire
Bedrock et Trellis pour déployer WordPress avec une arborescence modernisée

composer create-project roots/bedrock : cette seule commande installe une arborescence WordPress radicalement différente de l’installation classique téléchargée depuis wordpress.org. Pas de dossier wp-admin à la racine, pas de wp-config.php à la racine non plus, mais une structure pensée pour séparer strictement le cœur de WordPress du code propre au projet.

Bedrock, maintenu par l’équipe Roots, ainsi que Trellis, son complément pour le provisioning serveur, répondent à un besoin précis : gérer un projet WordPress avec les mêmes outils et la même rigueur qu’un projet PHP moderne géré par Composer, sans renoncer à l’écosystème d’extensions et de thèmes WordPress existant.

La structure Bedrock, dossier par dossier

Une fois l’installation terminée, l’arborescence se présente ainsi :

site/
├── composer.json
├── config/
│   ├── application.php
│   └── environments/
│       ├── development.php
│       ├── staging.php
│       └── production.php
├── web/
│   ├── app/
│   │   ├── mu-plugins/
│   │   ├── plugins/
│   │   └── themes/
│   └── wp/
└── .env

Le dossier web/wp contient le cœur WordPress téléchargé par Composer, jamais modifié directement. Le dossier web/app remplace le traditionnel wp-content, et concentre tout ce qui est propre au projet : thème, extensions, plugins obligatoires. Les identifiants de connexion à la base de données, les clés de sécurité et les réglages propres à chaque environnement sont extraits du code et placés dans le fichier .env, jamais versionné.

Gérer les extensions comme des dépendances Composer

Plutôt que d’installer une extension via l’interface d’administration, Bedrock encourage à la déclarer dans composer.json, ce qui rend la liste des dépendances explicite et reproductible d’un environnement à l’autre :

L'essentiel à retenir : Bedrock sépare le cœur WordPress des fichiers propres au projet ; Les extensions et le thème deviennent des dépendances Composer versionnées ; Trellis automatise le provisioning serveur via Ansible
{
    "require": {
        "php": ">=7.4",
        "composer/installers": "^1.9",
        "roots/wordpress": "5.7.1",
        "roots/bedrock-autoloader": "^1.0",
        "wpackagist-plugin/advanced-custom-fields": "^5.9"
    }
}

Une extension issue du dépôt WPackagist s’installe alors avec composer require wpackagist-plugin/nom-extension, exactement comme n’importe quelle bibliothèque PHP. Ce mode de gestion facilite grandement la reproduction d’un environnement identique entre un poste de développement, un serveur de recette et la production.

Trellis : le provisioning serveur automatisé

Trellis complète Bedrock côté infrastructure, en s’appuyant sur Ansible pour provisionner des serveurs Ubuntu configurés pour WordPress : Nginx, PHP-FPM, MariaDB, et une structure de déploiement cohérente entre développement, recette et production. Une même définition de rôles Ansible permet de provisionner trois environnements distincts avec des variables spécifiques à chacun.

  • Un fichier d’inventaire par environnement, listant les serveurs concernés
  • Des rôles Ansible réutilisables pour Nginx, PHP-FPM et MariaDB
  • Un mécanisme de déploiement (trellis deploy) qui exécute Composer côté serveur et bascule symboliquement vers la nouvelle version du code

Ce que cette approche demande en contrepartie

Cette architecture n’est pas gratuite en complexité. Elle suppose une équipe à l’aise avec Composer, Ansible, et la ligne de commande, et rend certaines opérations habituelles pour un utilisateur WordPress classique moins directes, comme l’installation rapide d’une extension via l’interface d’administration, volontairement restreinte sur ce type de configuration.

Bedrock et Trellis conviennent à une équipe qui gère plusieurs projets WordPress avec une discipline d’ingénierie logicielle établie. Ils n’apportent pas grand-chose à un site unique géré par une seule personne peu familière de Composer.

Pour quel type de projet cette adoption a du sens

Sur les projets suivis par cette équipe, l’adoption de Bedrock et Trellis s’est révélée pertinente principalement pour les sites gérés en continu par plusieurs développeurs, avec un besoin réel de reproductibilité entre environnements et un cycle de déploiement fréquent. Pour un site vitrine simple géré ponctuellement, la structure classique de WordPress reste largement suffisante et plus accessible.

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