J'ai trouvé des dépendances dans un module personnalisé avec drupal-composer , comment puis-je inclure une bibliothèque tierce dans mon module personnalisé sans utiliser Composer Manager et comment gérer les dépendances du compositeur des modules contrib sur drupal 8 qui sont reliées à ma question, mais non semblent plus s'appliquer depuis Drupal 8.1 et la dépréciation du gestionnaire Composer .
Les guides populaires tels que l' introduction définitive de D8 et Composer semblent ne plus s'appliquer car ils mentionnent également le gestionnaire de compositeurs.
L'autre solution opposée au gestionnaire de compositeur, modifier le fichier core composer.json ressemble à trop de piratage de noyau et romprait probablement avec chaque mise à jour Drush du noyau Drupal (?).
Plus précisément, j'essaie de mettre à jour les vCards Views de Drupal 7 à 8. J'ai créé mon fichier composer.json comme suit:
{
"name": "drupal/views_vcards",
"description": "Allows creation of vCards using the fields provided by the Views module.",
"type": "drupal-module",
"license": "GPL-2.0+",
"homepage": "https://drupal.org/project/views_vcards",
"require": {
"maennchen/zipstream-php": "0.3.*"
}
}
Mais si je mets un fichier composer.json dans mon dossier de module, comment puis-je informer Drupal que ce fichier est là et comment m'assurer que la zipstream-php
bibliothèque requise est téléchargée?
La simple exécution à composer update
partir de la racine Drupal met à jour de nombreuses dépendances Drupal, mais elle n'inclut pas les fichiers composer.json qui se trouvent dans les dossiers des modules. Je ne suppose pas non plus que je devrais appeler composer install
de l'intérieur de tous les modules avec des dépendances.
Comment informer Drupal de la dépendance d'un module sans utiliser le gestionnaire de compositeur et / ou le hacking core?
MISE À JOUR:
Le plugin de fusion de composeur utilisé par core semble prendre en charge un chemin générique:
{
"require": {
"wikimedia/composer-merge-plugin": "dev-master"
},
"extra": {
"merge-plugin": {
"include": [
"composer.local.json",
"extensions/*/composer.json" // < ---- THIS LINE
],
"require": [
"submodule/composer.json"
],
"recurse": true,
"replace": false,
"merge-dev": true,
"merge-extra": false
}
}
}
Pourquoi le noyau ne fusionne-t-il pas modules/*/composer.json
, cela résoudrait tout correctement?
Mise à jour 2:
Le raisonnement pour ne pas soutenir cela est couvert dans ce numéro (qui est également silencieux depuis un certain temps maintenant).
composer.json
fichier est donc la nouvelle méthode recommandée et le drush pour le téléchargement et l'installation des modules est remplacé? Évidemment, le composeur résoudra automatiquement les dépendances imbriquées et téléchargera également mes dépendances.