• Home
  • Nous contacter

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab
CMS Développement DevOps

Industrialiser WordPress avec WordPlate

WordPress est l’un des CMS les plus utilisés dans le monde. Il convient parfaitement à certaines typologies de projet, et il est donc naturel que les clients soient habitués à son interface.

En revanche, bien que son installation soit accessible au plus grand nombre, il est parfois un peu complexe d’industrialiser son déploiement.

Problématique

Lorsque l’on installe pour la première fois WordPress, on le fait généralement de cette manière :

  1. Téléchargement du zip
  2. Décompression
  3. Installation via l’interface de WordPress présent dans le dossier install
  4. Suppression du dossier install (quand on y pense)

Tout ça c’est bien beau en local, mais quand il s’agit de le mettre sur le serveur final, comment fait-on ?
Là encore, la première question à laquelle on pense : Y-aurait-il un plugin qui peut le faire à ma place ?
La réponse est : oui. Et ce plugin s’appelle Duplicator. Il permet -comme son nom l’indique- de dupliquer le site vers un environnement différent.

Le plugin procède comme suit :

  1. Création d’une archive zip à un instant T contenant l’ensemble des fichiers et le dump de la base de données
  2. Création d’un fichier installer.php qui est un interface d’installation sur le serveur cible

On envoie alors tout ça sur le serveur de destination, on appelle le fichier installer.php via le navigateur et on se laisse guider.
Cette solution fonctionne, mais quand on va vouloir automatiser ce processus, notamment via des outils comme Jenkins ou Travis, on va vite se rendre compte que ce n’est tout simplement pas possible.

WordPlate à la rescousse !

Heureusement, une bande de développeurs a pensé à nous et a mis en place le projet WordPlate.

Gestion du core, des thèmes et des plugins

Le projet est basé sur le gestionnaire de dépendances Composer, et embarque WordPress ainsi que tous les plugins qui sont considérés en tant que tels. Vous pourrez ainsi soulager vos dépôts en ne versionnant que le nécessaire !

Pour installer un nouveau projet, rien de plus simple :

composer create-project wordplate/wordplate

La dernière version de WordPress est par défaut utilisée. Mais il est tout à fait possible de spécifier la version voulue :

"require": {
    "johnpbloch/wordpress": "4.7.1"
}

L’intégration de plugins ou thèmes gratuits se fait par l’intermédiaire du site wpackagist qui est un miroir du dépôt SVN de WordPress :

“require”: {
    "wpackagist-plugin/polylang": "^2.1",
}

Pour les plugins ou thèmes payants, leur mise en place est un peu différente. Vous pouvez les héberger sur un dépôt git privé ou en zip dans votre projet comme ci-dessous :

"repositories": [{
    "type": "package",
    "package": {
        "name": "mon-projet/mon-plugin-payant",
        "type": "wordpress-plugin",
        "version": "1.0",
        "dist": {
            "type": "zip",
            "url": "./resources/plugins/mon-plugin-payant.zip"
        }
    }
}],
"extra": {
    "installer-paths": {
        "public/plugins/{$name}": ["type:wordpress-plugin"],
    }
}

Variables d’environnement

Le second point primordial lorsque l’on parle d’industrialisation est l’utilisation de variables d’environnement. En effet, d’un environnement à l’autre, certaines informations diffèrent: identifiants de connexion à la base de donnée, serveur de mail, etc.
WordPlate utilise le projet PHP dotenv qui vise à utiliser des fichiers .env pour stocker toutes vos variables d’environnement. Il les rend ainsi accessibles via la méthode getenv() ou les super-globales $_ENV et $_SERVER.

Base de données

Afin de mettre à jour la base de données, il vous faudra mettre les mains dans le cambouis !

Mais là encore, WordPlate vous facilite la vie en embarquant l’utilitaire WP_CLI. Celui-ci vous permet d’exporter votre base de données, puis de la réimporter sur le serveur de destination, avec les commandes suivantes :

wp db export --add-drop-table
wp db import

Une fois votre base de données importées, il ne vous reste plus qu’à remplacer les occurences de l’ancien domaine par le nouveau :

wp search-replace ancien-domaine.fr nouveau-domaine.fr

Conclusion

WordPlate rend l’industrialisation de WordPress à la fois plus simple et plus claire. Cependant, la communauté semble réduite et vous ne trouverez pas forcément de réponse aux problèmes que vous rencontrerez. Il faudra alors vous armer de patience.
Cela étant, après un temps d’adaptation très court, vous tirerez rapidement bénéfice de cette solution.

07/07/2017 6 MIN READ BY: Laurent Pitteloud 0 COMMENT
SHARE
LIRE LA SUITE

Laurent Pitteloud

Développeur Back

We need #BetterAds

Sylius, une vraie alternative à Prestashop ou Magento ?

VOUS POURRIEZ AIMER

CMS WordPress, quelques codes utiles – Épisode 2

Développement e-Commerce Sécurité Le RGPD / GDPR, c’est maintenant pour les e-commerçants !

Backend CMS Développement Framework Strapi + Socket.io

CMS Changer le wording par défaut sous Drupal 7 – The Right Way

CMS Traduire WordPress avec CodeStyling Localization

CMS Drupal mon amour, ou comment créer un module pour afficher une map leaflet

A propos d’Adfab

Nous sommes un studio de production digitales et d’innovation digitales au service des agences et des annonceurs
Nous recherchons le scintillement dans les regards et le plaisir de réalisations sur-performantes
Nous sommes techno-agnostiques
Nous sommes Adfab

Le blog d'Adfab
Copyright © 2018 Adfab Connect