Composer - Ajouter un fichier externe à son projet

Voici comment récupérer un fichier externe (qui doit être accessible depuis internet) et l'intégrer dans votre instance de site, sans avoir à versionner le fichier.

Dans le cas présent il s'agit de « rules » d'un Makefile permettant d'effectuer des taches spécifiques à un drupal. (Récupération d'un dump de prod, import, import de la config, update de base de données...)

En ayant marre d'avoir à copier / coller ce fichier de projets en projets, je l'ai rationalisé et transformé en une version que j'inclue via composer. Ainsi quand je modifie ce fichier pour un projet, tous les autres peuvent en profiter.

Voici ce que j'ajoute à ma section « repositories » de mon fichier composer.json :

        {
            "type": "package",
            "package": {
                "name": "kgaut/makefile-drupal",
                "version": "1.1",
                "type": "makefile",
                "dist": {
                    "url": "URL DU FICHIER",
                    "type": "file"
                }
            }
        }

Vous pouvez personnaliser l'attribut name du package et évidement l'attribut url, pour pointer vers l'url du fichier.

Ensuite pour que le fichier se télécharge, il faudra simplement faire un :

composer require kgaut/makefile-drupal

Votre fichier sera présent dans dans ./vendor/kgaut/makefile-drupal.

Via la section extra > installer-paths il vous est possible de choisir où le fichier doit être téléchargé.

Contenus en rapport

Drupal & Composer - Appliquer un patch dans le fichier composer.json

Si vous utilisez composer pour gérer votre instance de Drupal, vous avez parfois besoin d'appliquer un patch (de votre conception ou depuis drupal.org) que ce soit pour un module tiers ou pour le core.

Si on est "à l'ancienne" on a le core et les module sous gestionnaire de version (git par exemple), cela reste simple, vous appliquez le patch et commitez le tout.

Ajouter un commentaire

Ne sera pas publié
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...