Я нашел зависимости в пользовательском модуле с drupal-composer , как я могу включить стороннюю библиотеку в свой пользовательский модуль без использования Composer Manager и как управлять зависимостями композитора модулей contrib на drupal 8, которые опубликованы на мой вопрос, но нет кажется, больше не применяется, так как Drupal 8.1 и устаревший менеджер Composer .
Также популярные руководства, такие как окончательное введение в D8 и Composer, похоже, больше не применяются, поскольку в них также упоминается менеджер композиторов.
Другое решение, в отличие от менеджера композиторов, изменение файла ядра composer.json выглядит как слишком большой взлом ядра и, вероятно, будет нарушаться при каждом обновлении Drush ядра Drupal (?).
Более конкретно, я пытаюсь обновить Views vCards с Drupal 7 до 8. Я создал свой файл composer.json следующим образом:
{
"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.*"
}
}
Но если я помещаю файл composer.json в папку моего модуля, как я могу сообщить Drupal, что этот файл есть, и как мне убедиться, что требуемая zipstream-php
библиотека загружена?
Простой запуск composer update
из корня Drupal действительно обновляет многие зависимости Drupal, но он не включает файлы composer.json, которые находятся в папках модулей. Я также не предполагаю, что должен вызывать composer install
изнутри все модули с зависимостями.
Как я могу сообщить Drupal о зависимости модуля без использования менеджера композитора и / или хакерского ядра?
ОБНОВИТЬ:
Композитор слияния плагин , используемый основным , как представляется, поддерживает подстановочные путь:
{
"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
}
}
}
Почему ядро не сливается modules/*/composer.json
, это решило бы все правильно?
Обновление 2:
Обоснование того, что это не поддерживается, рассматривается в этом выпуске (который также некоторое время оставался тихим).
composer.json
файл - это новый рекомендуемый способ, и заменяется drush для загрузки и установки модулей? Очевидно, что композитор автоматически разрешит вложенные зависимости и действительно также загрузит мои зависимости.