Я знайшов залежності в користувацькому модулі з drupal-composer , як я можу включити сторонній бібліотеку в свій спеціальний модуль без використання диспетчера композиторів і як керувати модулями contrib залежність композиторів від drupal 8, які відкидаються на моє запитання, але ні здається, більше застосовується з часу Drupal 8.1 та знецінення менеджера композиторів .
Також такі популярні довідники, як "Остаточне вступ до D8" і "Композитор", більше не застосовуються, оскільки вони також згадують менеджера композиторів.
Інше рішення, на противагу менеджеру композиторів, змінює файл composer.json в ядрі, як занадто багато хакерства в ядрі, і, ймовірно, зламається з кожним оновленням драйву ядра 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
файл - це новий рекомендований спосіб, і друк для завантаження та установки модулів замінюється? Очевидно, що композитор автоматично вирішить вкладені залежності, а також завантажуватиме мої залежності.