Cheatsheet

Utiliser Composer avec les plugins privés

Laisser un commentaire

Certains plugins sont privés. Soit ce sont vos propres plugins que vous ne Lorsouhaitez pas publier, soit il s’agit de plugins premiums qui ne sont disponibles au téléchargement qu’après achat. Par conséquent, ils ne sont pas répertoriés sur WPackagist.

Dans un cas comme dans l’autre, nous allons créer un dépôt privé sur GitHub afin que Composer puisse récupérer le code automatiquement.

Création du dépôt privé

Dans un premier temps, on créé donc un nouveau dépôt avec tout le code du plugin, puis on ajoute un composer.json afin que Composer sache quoi faire.

{
  "name": "prefixe_github/nom_du_repo",
  "description": "Description facultative",
  "keywords": ["wordpress", "plugin"],
  "homepage": "url du repo",
  "type": "wordpress-plugin",
  "require": {
    "php": ">=7.3",
    "composer/installers": "~1.7"
  }
}

Dans name vous renseignez le slug du repo, soit votre prefixe GitHub (Buzut par exemple dans le cas de Steroids) puis le nom du repo : Buzut/setroids pour Steroids par exemple.

Ensuite, require permet de configurer les dépendances. Ici on se contente d’indiquer la version minimale de PHP ainsi que composer/installers. Cette dernière dépendance permettra à Composer d’installer le plugin directement dans le répertoire des plugins.

Composer sait qu’il s’agit d’un plugin car on a bien déclaré wordpress-plugin dans type.

Une fois que tout est bon, on peut commiter les fichiers et créer le premier commit.

git add .

# Puis on commit
git commit

En dernier lieu, on créer un tag afin d’attribuer un numéro de version au plugin.

# Admettons qu'on définisse le plugin comme étant en version 1
git tag 1.0.0

Enfin, lors du push, on n’oubliera pas de pusher aussi les tags avec l’option --tags de git push, soit git push --tags.

Alternativement, sachez aussi qu’il est possible d’avoir des dépôts Packagist privés. C’est une solution qui apporte encore plus de souplesse et de puissance, mais elle n’est pas gratuite.

Utiliser le dépôt avec Composer

Dans le composer.json du projet, on doit référencer nos dépôts GitHub afin que Composer puisse les utiliser.

…
"type": "project",
    "repositories": [
        {
            "type": "composer",
            "url": "https://wpackagist.org",
            "only": [
                "wpackagist-plugin/*",
                "wpackagist-theme/*"
            ]
        },
        {
            "type": "vcs",
            "url": "git@github.com:github_prefix/project_name.git"
        },
        …
    ]
    …

On doit référencer chacun des dépôts de nos plugins. Comme il s’agit de dépôt privés, Composer demandera de vous authentifier. C’est pour cette raison qu’il est préférable d’utiliser GitHub pour cela. L’authenfitication est déjà intégrée.

Vous pouvez exécuter la commande d’installation composer require github_prefix_project_name et Composer vous donnera les instructions afin de créer votre token d’autorisation.

Étant donné que vous aurez parfois besoin de déployer de manière automatisée, l’authentification interractive peut ne pas toujours s’avérer adaptée. Dans vos scripts de deploy, vous renseignerez donc en amont votre jeton d’authentification GitHub.

composer config --global github-oauth.github.com $GITHUB_TOKEN

Et voilà, le tour est joué !

Commentaires

Rejoignez la discussion !

Vous pouvez utiliser Markdown pour les liens [ancre de lien](url), la mise en *italique* et en **gras**. Enfin pour le code, vous pouvez utiliser la syntaxe `inline` et la syntaxe bloc

```
ceci est un bloc
de code
```