Dans ce tuto, je ne rentrerais pas dans les détails de la gestion de wordpress via composer. Je pars du principe que votre projet wordpress est déjà gérable par composer, et que seule la problématique de gestion des plugins premiums, privés, voir des thèmes, vous intéresse. Si ce n'est pas le cas, allez voir cet excellent tuto de Roots.io sur le setup d'un projet wordpress et composer : https://roots.io/
Afin de pouvoir gérer des plugins privés et "premiums" (donc payant) via composer, j'ai décidé de passé par des repos Git afin de tracker les sources, mais aussi pour les utiliser avec composer. Il suffit ainsi d'ajouter le repo dans votre composer.json, et faire votre require, et voilà, c'est fini. Mais je voulais aussi pouvoir revenir en arrière facilement, passer de la version 1.5 à la version 1.6, puis pouvoir revenir à la 1.5 en cas de problème, le tout en utilisant uniquement la commande composer update.
La solution retenue a été d'utiliser les tags de GIT pour gérer les versions à installer via composer.
Gérer les plugins WordPress avec composer
Le workflow pour l'ajout d'un nouveau plugin est du coup très simple :
- Création du repo.
- Init et link du repo
-
git init
-
git remote add origin git@git.org:usergit/plugin-premium.git
-
- Ajout des fichiers de mon plugin
- Création du fichier composer.json à la racine de mon plugin
- Commit
-
git commit -m "plugin premium version 1.1.5"
-
- Création du tag de version
-
git tag -a 1.1.5 -m "version 1.1.5"
-
- Push.
-
git push origin --tags
-
Le fichier composer.json la racine du plugin :
{ "name": "usergit/plugin-premium", "type": "wordpress-plugin", "version": "1.1.5", "require": { "composer/installers": "~1.0.12" // à adapter en fonction de la version de votre projet } }
Et voilà, à ce stade, votre package composer est prêt à être utilisé. Il ne reste plus qu'à l'intégrer à votre projet
Éditer le fichier composer.json de votre projet (pas celui de votre plugin mais celui du projet ou sera installé le plugin)
ajouter cette ligne à votre repositories :
{ "type": "vcs", "url": "git@git.org:usergit/plugin-premium.git"}
Ce qui devrait ressembler à quelque chose de ce genre :
"repositories": [ { "type": "composer", "url": "https://wpackagist.org" }, { "type": "vcs", "url": "git@git.org:usergit/plugin-premium.git"} ],
Enfin, ajoutez cette ligne à votre require :
"usergit/plugin-premium" : "1.1.5"
Voilà, il suffit ensuite de changer le numéro de version pour faire un upgrade ou un downgrade
Maintenant, vous pouvez ajouter/mettre à jour vos plugins privées et premiums via composer grâce à la commande composer update.