New Slang - Création de Site Internet Artisanale

Développer pour WordPress sous Windows avec Git, MAMP & WP-CLI

thierry
Développer pour WordPress sous Windows #1 Git, MAMP & WP-CLI

Lorsque l’on fait du développement WordPress la bonne pratique veut qu’on travaille avec une version locale du site web, puis qu’on applique les modifications sur le serveur une fois celles-ci testées et validées. Comment mettre en place un environnement de développement WordPress solide sous Windows pour gérer et mettre en ligne les modifications apportées à votre site ?

Cet article couvrira l’essentiel de la mise en place d’un environnement de développement pour WordPress :

Je reviendrai la semaine prochaine dans un article qui mettra en pratique ces outils pour gérer votre site web et son développement, alors restez vigilants ! 🙂

En tant qu’utilisateur Windows, pas forcément évident de trouver des explications pour mettre en place ces outils en dehors des systèmes Unix. Il faut être honnête : c’est vachement plus simple d’installer et configurer tout ça sous Ubuntu, qu’avec l’OS de Microsoft.

Quelles alternatives sous Windows ?

Il y en aura certainement pour me dire de passer sous Ubuntu ou MacOS ou de simplement installer une machine virtuelle pour le développement.

Je les comprends ! J’ai développé durant des années sous Ruby / Ruby On Rails (aujourd’hui encore mon langage de développement web favoris) et lorsque j’étais forcé dans mon boulot de travailler sous Windows, je ne badinais pas : une machine virtuelle Unix et le tour était joué.

Soit en utilisant VirtualBox et en installant une distribution libre de Ubuntu avec le GUI, soit en utilisant VirtualBox couplé à Vagrant pour créer des machines virtuelles plus légères et portables en lignes de commandes, etc.

Aujourd’hui, il est même possible de trouver une distribution d’Ubuntu sur le Microsoft Store et d’installer une machine virtuelle en un clic.

Ubuntu sur le Microsoft Store

Il suffit alors de l’exécuter pour afficher la ligne de commande d’Ubuntu, on peut alors utiliser ses propres dossiers locaux depuis Ubuntu en allant dans le dossier /mnt/ ou chaque lecteur est mappé à un dossier du même nom.

Par exemple mon dossier D:\dev sur Ubuntu devient /mnt/d/dev.

Différence des dossiers dans Ubuntu par rapport à l'invite de commande Windows.

Mais toutes ces solutions ont beau fonctionner, elles rajoutent une couche de complexité et demandent plus de ressource qu’un simple environnement natif.

Parfois l’enjeu en vaut clairement la chandelle (notamment Ruby sous Windows qui est lent et bourré de problèmes), d’autres fois, on peut trouver des alternatives qui fonctionnent très bien !

C’est ce que je vais essayer de vous montrer dans cet article.

Git

Introduction

Outil de versionning Git

En premier lieu, je ne peux que vous conseiller d’installer l’outil de versioning Git. Créé par Linus Torvalds, l’auteur du noyau Linux, il s’agit d’un logiciel libre de gestion de version. Il vous permet en gros de garder un historique de chaque changement réalisé lors d’un développement.

Il est abondamment utilisé aujourd’hui et, que ce soit pour travailler de manière collaborative sur un projet ou pour du versioning simple il s’agit clairement de la meilleure solution sur le marché. Et elle est complètement gratuite !

Un exemple d’utilisation : vous travaillez sur un projet en production actuellement et vous aimeriez appliquer une nouvelle fonctionnalité ou un correctif important.

Exemple de branching lors du développement d’une fonctionnalité – Atlassian.com

Vous pouvez alors créer une branche qui sera spécifique à cette modification, sans toucher la branche en production. Une fois que cette modification est testée et fonctionnelle, vous la fusionnez à la branche de production.

Et ce n’est qu’un petit exemple parmi l’étendue des possibilités de Git !

Pourquoi utiliser Git ?

Gérer les versions du code

La première, comme mentionné plus haut, simplement pour garder une trace des modifications réalisées sur un site, permettre de faire des recherches dans l’historique des modifications, avec des commentaires pour chaque changement apporté et une possibilité de revenir en arrière en cas de soucis.

Git Bash sous Windows

La seconde est spécifique à l’outil que j’utilise pour Git : personnellement je travaille avec celui par défaut mis à disposition par Git pour Windows.

Celui-ci installe deux variantes de Git :

  • Git GUI : Une interface rudimentaire permettant de gérer ses projets et son versioning sans taper une seule commande… que je n’utilise plus depuis longtemps
  • Git Bash : L’interface en ligne de commande de Git qui a l’immense avantage de fonctionner comme un émulateur de Bash. C’est à dire le système de ligne de commande Unix. Cet outil permet donc d’exécuter des méthodes Unix et de fonctionner comme un terminal sous Mac ou Ubuntu

Bien sûr, après l’installation, Git en ligne de commande est également rendu disponible pour l’invite de commande Windows, mais sans le bonus des différentes commandes Unix.

Exécution de la commande Git dans l'invite de commande de Windows

Il existe beaucoup d’outils différents pour gérer Git sous Windows. N’hésitez pas à les tester ou à installer une autre application que celle que je vous propose ici.

Mais je pense qu’il est important, avant d’utiliser un système avec une jolie interface censé vous faciliter la vie, de travailler avec Git en ligne de commande pour bien comprendre son principe, son fonctionnement et pouvoir l’utiliser dans toutes les situations.

D’ailleurs dans cet article, je vous présenterai son fonctionnement uniquement en ligne de commandes.

Installer Git

Pour installer Git sous Windows, rendez-vous à cette adresse pour le télécharger et lancez l’installeur.

Lors de l’installation, Git vous demandera pas mal d’informations techniques. Voici ce que la version actuelle (2.22.0) à vous proposera comme option au moment de l’installation.

Licence d'utilisation lors de l'installation de Git

La première vue de l’assistant vous affiche la licence GNU, en gros, l’outil est gratuit, libre de droit et open source. En faisant Next, choisissez où vous souhaitez installer Git, vous pouvez simplement laisser l’option par défaut.

Choisir les options à installer pour Git

Dans cette vue, je vous conseille de laisser les options par défaut. Cependant si l’option Windows Explorer Integration > Git GUI Here est activée, vous pouvez la désactiver.

Comme je n’utilise pas Git GUI, je désactive cette option pour ne pas polluer trop le clic droit dans mon explorateur Windows.

Mais l’option Git Bash Here est super utile, elle permet d’ouvrir une fenêtre Git Bash dans le dossier où vous vous trouvez pour travailler rapidement à cet emplacement avec Git.

Option Git Bash Here dans le clic droit de l'explorateur
En faisant clic droit dans un dossier de l’explorateur Windows …
Ouverture d'un bash Git dans le dossier demandé
… l’option Git Bash Here permet d’ouvrir une session de Git Bash à cet endroit

En faisant Next vous pourrez choisir l’emplacement de Git Bash et Git GUI dans le menu démarrer.

Choix de l'éditeur de texte par défaut utilisé par Git

Dans cette nouvelle vue vous pourrez choisir l’éditeur de texte à utiliser par défaut. Lorsque vous réaliserez certaines actions, par exemple une fusion de 2 branches, Git vous demandera de saisir des informations au sujet de cette action pour documenter votre travail.

À ce moment-là il vous demandera d’entrer vos commentaires en ouvrant un éditeur de texte. Par défaut Git utilise Vim, un éditeur de texte en ligne de commande. Si vous savez l’utiliser, il fera bien l’affaire.

Personnellement j’utilise Sublime Text pour tous mes développements, un éditeur de texte efficace et léger, donc dans mon cas je choisis celui-ci comme éditeur par défaut. Mais à vous de voir.

Choix de la gestion du PATH de Windows lors de l'installation de Git

Cette nouvelle fenêtre vous permettra de choisir d’installer la commande Git ainsi que d’autres commandes de 3 manières :

  • Uniquement à partir du Git Bash : Cela signifie que pour accéder à la commande git, vous devrez impérativement lancer l’application Git Bash. Le Path de Windows ne sera pas modifié
  • À partir de Git Bash, de la ligne de commande et d’autres applications tierces : Cette option permet d’ajouter la commande git au Path de Windows, de cette manière vous pourrez y accéder à partir de tous vos outils de lignes de commande.
  • Utiliser Git et d’autres outils Unix dans la ligne de commande : Cette option n’est pas recommandée, elle met à disposition une série de commande Unix (en plus de git) pour tous vos environnements en ligne de commande. Comme indiqué, ce genre de modification peut écraser des méthodes existantes dans Windows avec des méthodes Unix (find, sort)

Mon conseil ? La deuxième option, de cette manière vous êtes libre d’utiliser la commande git là où vous le désirez, sans pour autant créer des problèmes avec des fonctionnalités de base de Windows.

Choix de l'exécutable SSH

Ici, Git vous demande si vous désirez utiliser OpenSSH ou un autre système de SSH pour vous connecter avec Git.

SSH est un protocole de communication sécurisé, utilisé par Git lors des transferts de données (envoi et récupération des modifications notamment). Par défaut OpenSSH est utilisé, vous pouvez choisir d’en utiliser un autre.

Vous voyez dans cette capture que j’utilise l’outil de SSH PuTTY sous Windows et du coup, Git me demande si je préfère travailler avec ce dernier.

Ici, Git vous demande si vous souhaitez utiliser OpenSSL pour la gestion des certificats SSL lors de connexions HTTPS. Il est également possible d’utiliser le système fourni par Windows, appelé Windows Secure Channel Library.

Cette deuxième option peut être utile si vous avez des certificats auto-signées, distribués par Active Directory, installé en interne et utilisé sur les serveurs avec lesquels vous allez interagir.

Mais en règle générale, OpenSSL fera l’affaire.

Gestion des fins de lignes CRLF / LF dans Git

On entre dans un élément encore un peu plus technique : comme nous allons travailler sous Windows et que Git est au départ un système Unix, il est important de définir comment les fins de lignes vont être gérées et analysés dans vos fichiers.

Sous Windows, les fins de ligne sont reconnues par une séquence de 2 octets appelé CRLF. Qui signifie en fait CR (Carriage Return) + LF (Line Feed). En français : retour de chariot et saut de ligne.

Les systèmes Unix eux considèrent que lorsque le caractère LF (saut de ligne) est trouvé, le retour de chariot est implicite et il s’agit forcément d’une nouvelle ligne.

Voici les 3 options proposées par Git :

  • Vérifie les fichiers en mode Windows et les soumet en mode Unix : Cela veut dire que lorsque Git analysera vos fichiers, modifications, etc. il va le faire en vérifiant les fins de lignes tel que Windows le ferait. Lors de l’envoi, il les transmet au format Unix. De cette manière vous pouvez gérer un projet multi-plateforme sans vous soucier de ce détail.
  • Vérifie tel quel et soumet en mode Unix : Cela signifie que Git ne va pas se poser la question de l’architecture, il va vérifier les fichiers tels qu’ils sont (CRLF ou LF) et il les convertira au besoin lors de l’envoi.
  • Vérifie tel-quel, soumet tel-quel : Dans ce cas aucune conversion ne se fera, les fichiers seront vérifiés dans leur format actuel et envoyés dans le même format

Cette fois encore, garder l’option par défaut qui est recommandée lorsqu’on travaille sous Windows.

Type de terminal à utiliser : MinTTY ou la console Windows par défaut

Ici vous pouvez choisir si Git Bash utilisera MinTTY ou la console de commande par défaut de Windows.

Cela signifie que lorsque vous lancerez Git Bash, soit vous aurez une fenêtre de ligne de commande identique à celle de Windows, simplement avec des accès supplémentaires aux méthodes Unix ou si celui-ci se basera sur MinTTY, un terminal Unix développé spécialement pour fonctionner sous Windows.

Personnellement je préfère utiliser MinTTY qui me semble plus rapide et intègre un visuel plus riche (couleurs, etc.). C’est aussi un bon moyen de différencier les 2 consoles.

Options supplémentaires lors de l'installation de Git

Encore un peu de technique avec quelques options supplémentaires configurables :

  • Activer le cache : Permet de mettre en cache mémoire des informations du système de fichiers de votre poste de travail. Ce qui signifie de meilleures performances. J’active !
  • Activer le gestionnaire d’identifiants Git : Celui-ci vous permet par exemple d’enregistrer de manière sécurisé les infos de connexion à votre serveur FTP ou à des fournisseurs spécifiques (Azure, BitBucket, etc.). Avec même la possibilité de gérer l’authentification à 2 facteurs. À vous de voir, je ne l’utilise pas tel quel mais je le laisse activé par défaut.
  • Activer les symlinks (symbolic links) : Les symlinks dans les systèmes Unix sont en fait l’équivalent des raccourcis Windows : un fichier ou dossier pointant vers un autre fichier ou dossier. Cependant leur fonctionnement est totalement différent techniquement. Avant Windows 10, leur utilisation était problématique (créé un symlink à partir de Git nécessitait une évaluation). Je ne les utilise pas par défaut, je garde cette option désactivée.

Cette dernière option disparaîtra peut-être par la suite ou d’autres fonctionnalités expérimentales la remplaceront : il s’agit ici d’activer ou non les commandes add -i / add -p.

Ces nouvelles commandes interactives permettent d’avoir une vue détaillée des fichiers à ajouter avec un certain nombre d’actions proposées pour gérer l’ajout (statut, affichage des différences entre fichiers, rollback, etc.)

J’ai par habitude de désactiver les fonctionnalités expérimentales, mais à vous de voir.

Une fois touuutes ces options sélectionnées, Git lance l’installation et vous pourrez alors accéder à Git Bash et Git GUI pour commencer à travailler.

Je reviendrai sur l’utilisation de Git plus loin dans l’article.

MAMP (Apache / MySQL / PHP)

Introduction

MAMP : Mac Apache MySQL PHP

Pour pouvoir installer WordPress en local vous aurez besoin d’installer un serveur web local (Apache, Nginx, IIS), un serveur de base de données (MySQL, PostgreSQL, etc.) et PHP.

J’en parlais déjà dans mon article sur l’installation de Prestashop 1.7 en local (dont je reprends ici quelques éléments) : ne vous découragez pas, tout ça peut se faire en un clic grâce à MAMP.

Il existe plusieurs alternatives, mais pour moi MAMP est l’outil plus intuitif et facile à mettre en place que j’ai utilisé dans le domaine.

Attention cependant, il se limite à Windows et MacOS et n’est disponible sur aucune distribution Linux.

Pourquoi utiliser MAMP ?

Parce que ça vous facilitera grandement la vie !

Durant des années, lors de développements sous Windows, je configurais IIS, installais PHP, mettait en place manuellement les répertoires virtuels, etc.

Il existait bien des alternatives (comme EasyPHP) mais pour moi il s’agissait de solutions tout-en-un lourdes, qui apportaient plus de problèmes que de solutions.

Après les installations manuelles d’IIS je suis passé à l’installation et la configuration manuelle d’Apache et Nginx dans des VM Ubuntu.

Pour finir par retomber sur MAMP (que j’avais déjà utilisé à mes débuts) qui offre un environnement local complet sans se prendre la tête, avec des configurations et des logs disponibles à un seul endroit.

Comme toujours, si vous avez l’intention de faire du développement Web, je ne peux que vous conseiller d’apprendre à installer et configurer manuellement Apache, MySQL, PHP, etc., mais une fois que c’est acquis, MAMP fait drôlement bien l’affaire.

En plus de la version gratuite de MAMP, il existe également une version payante appelée MAMP Pro.

Si vous créez de nombreux sites web, n’hésitez pas à l’essayer (durant 30 jours). Cet outil offre pas mal de fonctionnalités vraiment intéressantes, entre autres la gestion du SSL en local et la possibilité de créer des hôtes virtuels pour chacun de vos sites avec leur propre nom de domaine local (par exemple monsite.dev). Le tout en quelques clics.

Je travaille moi-même avec MAMP Pro pour gérer les sites de mes clients.

Installation

Pour commencer rendez-vous ici pour télécharger MAMP pour MacOS ou Windows.

Exécutez l’installateur, qui vous demander immédiatement si vous désirez installer MAMP Pro et Apple Bonjour pour MAMP Viewer.

À vous de voir si vous voulez tester MAMP Pro, mais son installation rallonge considérablement celle de MAMP.

Apple Bonjour est un protocole qui vous permet de communiquer avec des appareils Apple sous Windows et qui est utilisé pour tester un site installé en local sur votre appareil iOS (ou Android).

À vous de voir, si vous voulez faire au plus simple : désactivez tout.

Désactivez MAMP Pro et Apple Bonjour lors de l'installation de MAMP

Ensuite exécutez l’installation normalement, tout devrait se faire sans heurt.

Configuration de MAMP

Une fois l’installation terminée, lancez MAMP, il démarrera les serveurs Apache (par défaut) et MySQL au démarrage. Ne faites pas attention à l’option Cloud.

Allez dans le menu MAMP > Preferences, vous y trouverez 6 onglets :

  • Start / Stop : Vous permettra de définir plusieurs options liées au démarrage des services. Faut-il démarrer les services au démarrage de MAMP ? Et les fermer à la fermeture ? Ouvrir MAMP ou démarrage de Windows ou MacOS ? Etc.
  • Ports : Où vous pourrez définir des ports spécifiques pour les différents serveurs de MAMP, à savoir Apache ou Nginx et MySQL
  • PHP : Qui vous permettra de choisir entre deux distributions de PHP
  • Web Server : J’y reviens plus bas
  • MySQL : Vous affiche la version actuelle de MySQL
  • Cloud : Pas utilisé dans notre cas. Permet d’enregistrer une base de données sur Dropbox pour la partager, entre autres
Onglet Web Server où vous pourrez choisir le dossier de base de MAMP
Onglet Web Server où vous pourrez choisir le dossier de base de MAMP

Onglet Web Server : Dans cet onglet vous pourrez choisir le WebServer à utiliser (Apache par défaut, mais si vous préférez Nginx c’est à vous de voir), mais surtout de spécifier le dossier racine de MAMP.

C’est à dire le dossier sur lequel pointera l’adresse http://localhost. C’est à cette endroit ou dans l’un de ses sous-dossiers que nous installerons WordPress.

Ici j’ai choisi D:\Dev\Web et WordPress sera installé dans le sous-dossier D:\Dev\Web\tuts.

L'adresse du dossier racine de MAMP reformulé en localhost/etc.
L’adresse du dossier racine de MAMP reformulé en localhost/etc.

Une fois le réglage effectué, vous pouvez appliquer les modifications et fermer la fenêtre. MAMP est installé et configuré !

WP-CLI

Introduction

WP-CLI : Gérez Wordpress en ligne de commandes

WP-CLI est un outil en ligne de commande, véritable couteau Suisse pour gérer WordPress.

Ce dernier est un outil en ligne de commande, spécifique aux environnements Unix (mais installable sous Windows avec un peu d’huile de coude) qui offre toute une série de commandes permettant d’installer WordPress, des extensions, effectuer des mises à jour, remplacer du contenu dans la base de données, etc.

Par exemple, pour installer WordPress, voici un exemple de commandes :

# Téléchargement de WordPress
$ wp core download --locale=fr_FR
Downloading WordPress 5.2.2 (fr_FR)...
md5 hash verified: c5366d05b521831dd0b29dfc386e56a5
Success: WordPress downloaded.

# Installation de WordPress
$ wp core install --url=votresite.ch --title=Titre --admin_user=admin --admin_password=motdepassedefou --admin_email=info@votresite.ch
Success: WordPress installed successfully.

# Affichage de la version de WordPress
$ wp core version
5.2.2

Si vous êtes habitués à travailler en ligne de commande, c’est un vrai gain en productivité une fois qu’on s’est familiarisé avec le système.

WP-CLI peut aussi bien être installé en local que sur un serveur en SSH.

Pourquoi utiliser WP-CLI ?

Si vous ne gérez qu’un seul site Internet et que votre travail de maintenance sur WordPress se limite plutôt à des modifications de CSS et quelques menus développements, WP-CLI ne vous sera pas d’une grande utilité.

Mais si comme moi vous gérez plusieurs site Internet, qu’il vous arrive fréquemment d’en créer de nouveau, que ce soit à des fins de test ou pour des clients, WP-CLI vous permet de gérer l’ensemble de vos sites en lignes de commandes facilement et rapidement.

Mieux encore, il est possible de créer des batch qui vous permettront d’exécuter une série de commandes dans WP-CLI en un clic.

Par exemple si, lorsque vous installer WordPress pour un client, vous mettez systématiquement en place une série de plugins et des options de configuration spécifiques, vous pouvez définir tout ça dans un fichier batch.

Ensuite vous l’exécutez en renseignant les informations demandées (nom du site, base de données, etc.) et votre mise en place est terminée.

En un clic, vous rayez 10 éléments de votre check-list !

Installation

Pas la peine d’aller sur la page d’accueil de WP-CLI pour trouver des informations sur l’installation de ce dernier sous Windows.

À peine un « Le soutien est limité sur les environnements Windows » pour vous recevoir et vous envoyer balader.

Mais en cherchant un peu, voici comment installer WP-CLI nativement sur Windows, pour qu’il fonctionne dans l’invite de commande de Windows ainsi que dans celle du Git Bash, sans distribution Linux ou machine virtuelle.

WP-CLI + mon script perso

Télécharger mon propre script d’installation de WordPress

Dans ce pack : WP-CLI pour Windows et mon script de création d’un site WordPress commenté, pour installer et configurer votre site en une seconde.

Télécharger mon propre script d’installation de WordPress

Télécharger WP-CLI.PHAR

Pour commencer, télécharger le fichier .phar qui représente la commande wp-cli :

https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Je l’ai personnellement téléchargé à la racine du dossier de mon utilisateur. Celui-ci se trouve, sous Windows 7, 8 ou 10, dans :

C:\users\[nom d'utilisateur]

Dans un dossier bin que j’ai créé, donc le fichier se trouve ici :

C:\users\[nom d'utilisateur]\bin\wp-cli.phar

Une fois le fichier téléchargé, vous pouvez tester son fonctionnement. Pour se faire vous devez l’exécuter en utilisant php.exe. Il s’agit de l’exécutable installé de PHP.

Dans le cas d’une installation de MAMP, il existe un fichier php.exe pour toutes les versions de PHP installée. Par exemple pour la version 7.2.10 vous le trouverez ici :

C:\MAMP\bin\php\php7.2.10\php.exe

Donc pour tester le fonctionnement de wp-cli, on tapera la commande suivante :

C:\MAMP\bin\php\php7.2.10\php.exe  C:\users\[nom d'utilisateur]\bin\wp-cli.phar

Qui devrait vous donner un résultat de ce type, vous donnant toutes les infos de WP-CLI :

Affichage du résultat de la commande WP-CLI

Ajouter les chemins au PATH de Windows

Windows conserve une série de chemins dans une variable d’environnement appelée Path (littéralement chemin).

L’idée est que lorsqu’on tape une commande, par exemple cd ou dir, Windows va commencer par regarder dans le dossier courant si une commande cd ou dir existe.

Si ce n’est pas le cas, il va regarder dans tous les chemins inscrits dans le Path si un fichier de commande cd ou dir existe. Lorsqu’il tombe sur la commande il l’exécute. Sinon il informe que cette commande n’existe pas.

Nous allons donc ajouter notre dossier :

C:\users\[nom d'utilisateur]\bin\

Dans le Path afin que lorsqu’on tape wp pour exécuter wp-cli, Windows regarde si une commande wp existe dans ce dossier et l’exécute si c’est le cas. Ne vous inquiétez pas, nous allons créer la commande plus loin dans cet article.

Pour se faire, aller dans le menu Système du Panneau de configuration de Windows (ou plus court, tapez Windows + Pause).

Là cliquez sur Paramètres systèmes avancés, puis sur Variables d’environnement en bas de la nouvelle fenêtre.

Modifier une variable d'environnement Windows

Nous n’allons pas modifier la variable Path pour tout le système, uniquement pour notre utilisateur actuel. Cliquez alors sur Path et faites Modifier.

Là ajoutez les 2 chemins que nous avons appelés plus haut à savoir :

  • C:\Users\[votre utilisateur]\bin : Chemin vers le fichier exécutable de WP-CLI
  • C:\MAMP\bin\php\php7.2.10 : Chemin vers l’exécutable de la version de PHP utilisée
Ajouter PHP et le dossier bin de l'utilisateur au PATH de Windows

Validez la modification dans les 3 fenêtres en faisant OK.

Une fois cette modification appliquée, déconnectez-vous de votre session et connectez-vous à nouveau avec votre utilisateur pour tenir compte de ces changements.

Créer un exécutable

Pour pouvoir utiliser le WP-CLI sans avoir à taper cette commande de barbare à chaque fois, nous allons commencer par créer un batch (fichier .bat) qui s’occupera de l’exécuter lorsqu’on l’appellera.

Ce batch, nous allons l’appeler wp.bat, ce qui nous permettra de simplement taper la commande wp et il sera créé dans le même dossier que wp-cli.phar :

C:\users\[nom d'utilisateur]\bin\wp.bat

Voici le contenu à entrer dans ce batch :

@ECHO OFF
SET BIN_TARGET=%~dp0/./wp-cli.phar
php "%BIN_TARGET%" %*

Voici ce que font ces quelques lignes de code :

  • @ECHO OFF : Empêche que les lignes appelées dans le batch soient affichée à l’utilisateur
  • SET BIN_TARGET : Défini la variable BIN_TARGET avec le contenu donné
  • %~dp0/./wp-cli.phar : Où %0 serait le chemin vers le batch actuel, sauf que l’on ne veut pas le chemin complet (C:\users\[nom d'utilisateur]\bin\wp.batch) on veut le chemin sans le nom du fichier. On utilise donc d pour récupérer le lecteur (d pour drive) et p pour récupérer le chemin du dossier (p pour path). On y ajoute le nom du fichier wp-cli.phar pour avoir le chemin complet de celui-ci.
  • php "%BIN_TARGET%" %* : Exécute la commande php (sans tout le chemin, vu qu’il est désormais dans le path), puis le fichier wp-cli.phar et pour terminer le ou les arguments passés en paramètres avec la fonction %*.

Maintenant si vous testez ce batch en tapant wp dans la fenêtre de commande de Windows, depuis n’importe quel dossier , vous devriez avoir ce résultat :

Résultat affiché à l'utilisation de la commande wp-cli

Dernière chose, si vous souhaitez y accéder depuis le Git Batch, il ne sera pas possible d’utiliser le batch, l’émulateur Unix ne reconnaissant pas ce type de fichier.

Il est donc nécessaire de créer un nouveau script spécifiquement pour ça. Créez un fichier simplement appelé wp, toujours dans le même dossier :

C:\users\[nom d'utilisateur]\bin\

Et saisissez ce code à l’intérieur :

dir=$(d=${0%[/\]*}; cd "$d"; pwd)

if command -v 'cygpath' >/dev/null 2>&1; then
   if [[ $(which php) == /cygdrive/* ]]; then
       dir=$(cygpath -m $dir);
   fi
fi

dir=$(echo $dir | sed 's/ /\ /g')
"${dir}/wp-cli.phar" "$@"

Pas grand-chose à traduire, j’ai trouvé ce script sur pas mal de blogs, il permet d’exécuter le fichier wp-cli.phar dans le dossier courant en récupérant ce chemin.

Le système vérifie si on utilise Cygwin sous Windows (autre émulateur Unix) et si c’est le cas, modifie le format du chemin pour éviter les problèmes.

Ensuite il exécute simplement le fichier wp-cli.phar.

Si vous ouvrez Git Bash et que vous tapez wp, voici le résultat :

Résultat affiché à l'utilisation de la commande wp dans Git Bash

Voilà, WP-CLI est installé sur votre poste !

Processus de développement

Maintenant que votre environnement est en place, voici brièvement comment ces différents éléments entrent en pratique lors de la création d’un nouveau site Internet.

Cet article étant déjà conséquent, je couvrirai en détail la mise en pratique de ce processus dans mon article de la semaine prochaine.

Création du site et installation de WordPress avec WP-CLI

Vous venez de recevoir le OK d’un client pour un nouveau site, vous avez un nouveau projet que vous voulez lancer, vous souhaitez créer une site WordPress de test pour une raison qui vous est propre, bref : vous devez créer un nouveau site et installer WordPress.

Grâce à WP-CLI, vous pouvez :

  • Télécharger WordPress
  • Définir les accès à la base de données
  • Créer la nouvelle base
  • Installer WordPress
  • Créer l’administrateur du site et son mot de passe
  • Installer les plugins importants et le thème
  • Créer le thème enfant – (psst ! vous pouvez aussi utiliser mon générateur de thème enfant qui est super cool et pratiquement aussi rapide que WP-CLI)

Tout ça en quelques commandes… ou en une seule si vous choisissez d’automatiser cette action grâce à un batch !

Voilà, votre site WordPress est installé, maintenant quoi ?

Accès au site avec MAMP

MAMP standard

Vous avez deux solutions, soit vous utiliser MAMP en version gratuite et à ce moment-là, vous faites pointer le dossier racine de MAMP dans le dossier parent de tous vos sites.

De cette manière lorsque vous accédez à localhost, vous pouvez afficher la liste de vos sites (qui seront en fait des dossiers) et en cliquant sur un dossier vous accéderez à votre site.

Par exemple :

http://localhost/monsite

Lors de l’installation de WordPress, vous aurez donc défini l’URL du site à http://localhost/monsite.

MAMP Pro

Deuxième possibilité, vous travaillez avec MAMP Pro. Dans ce cas, vous pourrez créer un hôte virtuel qui pointera vers le dossier du nouveau site que vous aurez créé.

Au lieu de faire :

http://localhost/monsite

Vous pourrez créer un hôte virtuel que vous appellerez par exemple :

http://monsite.dev

Ou, même, pour vous mettre dans des conditions identiques à votre hébergement :

https://monsite.dev

Car oui, avec MAMP Pro, vous pourrez installer des certificats SSL sur vos sites en local.

Versionning avec Git

Une fois votre site installé, vous allez le personnaliser, créé les modifications désirées dans votre thème enfant, etc.

Ensuite, vous le migrerez vers votre hébergeur pour en faire la mise en production. Vous le ferez manuellement ou avec une extension type Duplicator (je ne couvrirai pas ce point, il existe assez de tutoriel à ce sujet).

C’est là que Git entre en jeu. L’idée est de mettre en place un dépôt Git au sein de votre thème enfant et de faire de même chez votre hébergeur.

De cette manière, lors d’une modification en local, vous pourrez tester, corriger, adapter, puis envoyer vos modifications sur le serveur distant.

Une fois que toutes les corrections auront été appliquées et testées, vous pourrez vous rendre sur votre environnement de production et récupérer ces modifications.

Non seulement cela vous donne un contrôle total sur le développement et la gestion de la mise en production (cadre stricte, peu d’erreurs possibles, etc.), mais en plus toutes vos modifications et tous vos fichiers sont versionnés.

Une erreur, un problème ? Vous avez un historique que vous pouvez fouiller pour régler le problème et vous pourrez même revenir en arrière pour une résolution rapide.

Conclusion

Cet article est un long préambule technique avant l’utilisation concrète des différents outils installés.

Je couvrirai ces points dans mon article de la semaine prochaine, sachez juste que si ça peut paraître beaucoup de travail à mettre en place, vous ne le ferez en général pas toutes les semaines !

Une fois votre environnement installé, configuré et fonctionnel celui-ci vous donne :

  • De nombreuses automatisations pour vous faciliter la vie et gagner du temps
  • Un cadre de travail et de développement stricte, qui peut vous éviter de nombreuses erreurs
  • Une organisation clairement définie, à laquelle vous n’aurez plus besoin de réfléchir dans le futur

En bref, un bon environnement de développement doit vous permettre, une fois mis en place, de ne plus y réfléchir.

Un nouveau site à créer ? Une nouvelle modification à apporter ? Votre processus est clair et tout tracé.

8 commentaires

8 réflexions au sujet de “Développer pour WordPress sous Windows avec Git, MAMP & WP-CLI”

  1. Super article! Probablement le seul traitant de Git, Mamp et WP Cli sur Windows avec un tuto ultra complet! Enfin presque… pourquoi avoir arrêté l’article en si bon chemin? On suit les étapes, on installe Git et tout, puis tu n’expliques pas comment utiliser Git (du moins dans les grandes lignes). Ne fut ce qu’un exemple aurait été le bienvenue: modifier une page par exemple et l’envoyer sur Git. Tu n’expliques pas non plus comment le lier à un dépot git, ni comment le relier à un hébergeur (ni quelles seraient les conditions pour le faire).

    Du coup, à la fin de ton tuto, j’ai été frustré, car n’ayant jamais fait tout cela moi même, j’ai perdu patience à suivre 50 autres tutos sans succès (sans compter le temps perdu…).

    Répondre
  2. J’ai découvert ta série d’articles avec un grand bonheur. Moi-même développeuse, j’étais en pleine réflexion sur ce sujet et ton article ma beaucoup aidé.
    J’en profite pour te demander ton avis si tu veux bien, sur Bedrock. Qu’en penses-tu ? As-tu essayé de l’intégrer à ta méthode ?

    Sinon merci encore pour ton partage de connaissance, et bravo pour la qualité de tes articles, et bien sûre de tes comics (j’adore !!).

    Répondre
    • Salut Laurence,

      Tout d’abord merci pour tes compliments ça fait super plaisir ! Je vois qu’on s’est croisé aussi sur LinkedIn 😉

      Au sujet de ta demande, il faut savoir admettre son ignorance : je ne connais pas Bedrock que je découvre à l’instant ! Pour être honnête sur mes derniers projets pour des raisons techniques j’ai très peu utilisé WP-CLI, mais je vais voir ce que propose Bedrock et si ça peut être utile, j’essaierai pourquoi pas d’en parler ici.

      Tu as testé de ton côté ? Un avis sur la question ?

      Répondre
  3. Bonjour,
    J’ai un soucis au niveau du dernier script pour utiliser la wp-cli dans git bash. La commande wp me retourne :

    /c/Users/LaurenceMad/bin/wp: line 1: cd: /c/Users/LaurenceMad/bin/wp: Not a directory
    /c/Users/LaurenceMad/bin/wp: line 8: /c/Users/LaurenceMad/wp-cli.phar: No such file or directory

    Je bloque un peu là-dessus si tu as une idée.
    Ca ne va pas m’empêcher de poursuivre, mais si tu as une idée, j’aime bien comprendre. Merci d’avance

    Répondre
    • Salut Laurence,

      Au sujet de ce problème, si tu ouvres le Git bash et que tu tapes cd /c/Users/LaurenceMad/bin/wp est-ce que ça fonctionne ? Il trouve le dossier ?
      Je ne dis pas que le dossier n’existe pas, mais il y a peut-être un problème dans la formation du chemin ?

      Tiens-moi informé si tu trouves une solution !

      Répondre
  4. Bonjour Thierry,
    Je suis moi-même développeur depuis plus 30 ans et orienté web depuis plus de 5 ans. J’utilise WordPress régulièrement et je te remercie pour avoir mis à notre disposition tes articles de qualité. Nul doute que la mise en œuvre de ces informations va m’apporter satisfaction et je ferais un retour ici même une fois les tests effectués. Ton site est sobre et convivial, son contenu est pertinent et très bien rédigé. Il est rare que je fasse un commentaire mais après avoir pris connaissance de ton travail, je me devais de te remercier et de t’encourager pour tes articles futurs. A très bientôt.

    Répondre
    • Bonjour Eric,

      Merci du retour détaillé et pour tes compliments, ça fait chaud au coeur ! Surtout venant d’un visiteur qui n’a pas l’habitude de commenter, je fais de mon mieux pour proposer le meilleur contenu possible, ce qui signifie aussi que la fréquence d’ajout de nouveaux articles est parfois un peu lente, mais ce genre de commentaire donne vraiment envie de continuer 😉

      Merci encore et j’attends ton retour d’expérience sur le sujet.

      Répondre

Laisser un commentaire

Télécharger cette super ressource gratuite !

Entrez votre adresse e-mail ci-dessous et recevez cette ressource dans votre boîte de réception dans quelques secondes.