Avouez le, si vous avez plusieurs sites a maintenir et que vous ne voulez pas passer par le bouton « mettre a jour »pour des raisons pratiques et de rapidité, les extensions premiums sont assez chia… casse-pieds à gérer.

Quelles solutions pour mettre ses extensions premiums WordPress à jour?

Vous avez plusieurs solutions:

  • Se rendre sur le site de l’éditeur de l’extension, sur son profil, récupérer le .zip de la mise a jour et la transférer via FTP ou via Git selon les habitudes de chacun. Cette opération sera a réitérer  sur chacun de vos sites…
  • Avoir une copie de « dev » de ses sites en local avec les clés API renseignées et cliquer sur le bouton qui va bien…
  • Avoir un dépôt Composer avec les dernières version de ses extensions premiums WordPress disponible.

Et c’est bien cette dernière solution que je compte vous présenter dans ces quelques lignes!

Composer est un gestionnaire de dépendance pour PHP mais ce tutoriel n’a pas pour but de vous expliquer le fonctionnement de ce logiciel. Etant très répandu, d’autres vous expliquerons tout ca bien mieux que moi.

L’idée est donc de créer son propre dépôt Composer sur lequel nous pourrons téléverser les différentes extensions dans leurs dernières versions ensuite il suffira de lancer une mise a jour via Composer sur nos différents projets! Et c’est justement ce que propose Release Belt de Rarst.

Découvrons Release belt

Release Belt est un projet de logiciel libre développé par Andrey Savchenko.

L’installation est assez simple puisqu’il vous suffit de cloner un dépot Git sur votre hébergement Web. Personnellement j’ai créé un sous domaine composer.thivinfo.com sur lequel j’ai installé Release Belt.

Le Readme est assez clair et en 3 commandes votre dépôt composer sera créé:

  • git clone https://github.com/Rarst/release-belt
  • cd release-belt
  • composer belt-update

A ce stade, votre dépot composer privé est installé, il ne reste plus qu’a téléverser les zip de vos extensions sur ce dépôt.

Pour cela il faut créer dans le répertoire releases un dossier « type » puis dans ce dossier type, créer un dossier avec le nom de l’extension et a l’intérieur de celui téléverser le zip… quoi c’est pas clair ?!

Le dossier « Type » peut être un dossier nommé par un nom natif de composer ou dans le cas qui nous interesse: « wordpress-plugin » mais ces possibilités existent:

  • wordpress-plugin
  • wordpress-theme
  • wordpress-muplugin
  • wordpress-dropin

Potentiellement, vous pourriez gérer tout autres projets autre que WordPress en utilisant ces types.

Chez moi le chemin vers les versions de SeoPress Pro ressemblera donc à /public_html/prod/composer/release-belt/releases/wordpress-plugin/wp-seopress-pro

  •  /public_html/prod/composer/ corresponds à la racine de mon installation Release Belt
  • /releases/wordpress-plugin/ le répertoire contenant la liste de mes extensions hébergées

Afin que seul vous ou les utilisateurs autorisés puissent accéder à votre dépôt Composer, je vous conseille fortement de le protéger via un système d’authentification. Les développeurs d’extensions ou de thème premium pourraient ne pas aimer que vous partagiez gratuitement leur travail.

Utiliser son dépôt Composer personnalisé dans un projet WordPress. 

Toutes les informations utiles se trouve sur la page d’accueil de votre dépot Composer. Chez moi c’est donc composer.thivinfo.com.

Si vous êtes un habitué de composer, vous saurez analyser les informations fournies par cette page auto-générée par Release-Belt.

Sinon il faut déclarer le dépôt dans votre composer.json:

"repositories": {
        "composer.thivinfo.com": {
            "type": "composer",
            "url": "https://composer.thivinfo.com/"
        }
    }

Puis dans la partie listant les extensions WordPress du projet vous copierez / collerez les lignes concernant l’extension voulue. 

Par exemple pour ajouter WP Rocket à mon projet, j’ajouterai les lignes suivantes à mon composer.json à la racine de celui-ci:

"wp-rocket/wp-rocket": "^3.2.2"

Facile!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *