Ho trovato Dipendenze in un modulo personalizzato con drupal-compositore , Come posso includere una libreria di terze parti nel mio modulo personalizzato senza usare Composer Manager e Come gestire le dipendenze del compositore di moduli contrib su drupal 8 che sono ricollegate alla mia domanda, ma no sembrano essere più applicabili da Drupal 8.1 e dal deprezzamento del manager Composer .
Anche guide popolari come L'introduzione definitiva a D8 e Composer sembrano non essere più applicabili in quanto menzionano anche il direttore del compositore.
L'altra soluzione contraria al manager del compositore, altera il file core composer.json sembra un hacking troppo intenso e probabilmente si spezzerebbe con ogni aggiornamento Drush di Drupal core (?).
Più specificamente, sto tentando di aggiornare Views vCard da Drupal 7 a 8. Ho creato il mio file composer.json come segue:
{
"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.*"
}
}
Ma se inserisco un file composer.json nella mia cartella del modulo, come faccio a rendere Drupal consapevole che quel file è presente e come posso assicurarmi che la zipstream-php
libreria richiesta sia scaricata?
La semplice esecuzione composer update
dalla radice di Drupal aggiorna molte dipendenze di Drupal, ma non include i file composer.json che si trovano nelle cartelle dei moduli. Inoltre non presumo che dovrei chiamare composer install
dall'interno di tutti i moduli con dipendenze.
Come faccio a sensibilizzare Drupal sulla dipendenza di un modulo senza usare il gestore del compositore e / o il core di hacking?
AGGIORNARE:
Il plug-in di unione compositore utilizzato da core sembra supportare un percorso jolly:
{
"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
}
}
}
Perché il core non si fonde modules/*/composer.json
, ciò risolverebbe tutto bene?
Aggiornamento 2:
Il ragionamento per non supportare questo è trattato in questo numero (che è stato in silenzio anche da qualche tempo).
composer.json
file è il nuovo modo consigliato e il drush per il download e l'installazione dei moduli viene sostituito? Ovviamente il compositore risolverà automaticamente le dipendenze nidificate e scaricherà anche le mie dipendenze.