Encontrei Dependências em um módulo personalizado com o drupal-compositer . Como posso incluir uma biblioteca de terceiros no meu módulo personalizado sem usar o Composer Manager e Como gerenciar as dependências do compositor no drupal 8, que estão relacionadas à minha pergunta, mas não parece mais aplicável desde o Drupal 8.1 e a descontinuação do gerente do Composer .
Também guias populares como A introdução definitiva ao D8 e Composer parecem não se aplicar, pois também mencionam o gerenciador do compositor.
A outra solução oposta ao gerenciador de compositores, alterar o arquivo composer.json principal, parece muito núcleo de hackers e provavelmente seria interrompido a cada atualização Drush do núcleo Drupal (?).
Mais especificamente, estou tentando atualizar o Views vCards do Drupal 7 para 8. Criei meu arquivo composer.json da seguinte maneira:
{
"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.*"
}
}
Mas se eu colocar um arquivo composer.json na pasta do módulo, como faço para informar o Drupal de que esse arquivo está lá e como garantir que a zipstream-php
biblioteca necessária seja baixada?
A simples execução composer update
da raiz do Drupal atualiza muitas dependências do Drupal, mas não inclui os arquivos composer.json que estão nas pastas dos módulos. Eu também não suponho que eu deveria estar chamando composer install
de dentro de todos os módulos com dependências.
Como conscientizo o Drupal da dependência de um módulo sem usar o gerenciador de compositores e / ou o núcleo de hackers?
ATUALIZAR:
O plug-in de composição do compositor usado pelo núcleo parece ter suporte para um caminho curinga:
{
"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
}
}
}
Por que o núcleo não se funde modules/*/composer.json
, isso resolveria tudo certo?
Atualização 2:
O raciocínio para não apoiar isso é abordado nesta edição (que também está em silêncio há algum tempo).
composer.json
arquivo é a nova maneira recomendada e o drush para baixar e instalar módulos está sendo substituído? Obviamente, o compositor resolverá automaticamente as dependências aninhadas e também fará o download das minhas dependências.