Saya telah menemukan Dependensi dalam modul khusus dengan drupal-composer , Bagaimana saya bisa memasukkan pustaka pihak ketiga dalam modul khusus saya tanpa menggunakan Composer Manager dan Bagaimana mengelola modul contrib dependensi komposer pada drupal 8 yang dirilis ke pertanyaan saya, tetapi tidak tampaknya lebih lama berlaku sejak Drupal 8.1 dan penghentian manajer Komposer .
Juga panduan populer seperti Pengantar definitif untuk D8 dan Komposer tampaknya tidak berlaku lagi karena mereka juga menyebut manajer komposer.
Solusi lain yang menentang manajer komposer, mengubah file core composer.json terasa seperti terlalu banyak meretas inti dan mungkin akan terputus dengan setiap pembaruan Drush dari inti Drupal (?).
Lebih khusus lagi, saya mencoba memperbarui Views vCards dari Drupal 7 hingga 8. Saya telah membuat file composer.json saya sebagai berikut:
{
"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.*"
}
}
Tetapi jika saya meletakkan file composer.json di folder modul saya, bagaimana cara membuat Drupal sadar bahwa file itu ada di sana, dan bagaimana cara memastikan zipstream-php
perpustakaan yang diperlukan diunduh?
Cukup menjalankan composer update
dari root Drupal tidak memperbarui banyak dependensi Drupal, tetapi itu tidak termasuk file composer.json yang ada di folder modul. Saya juga tidak menganggap saya harus menelepon composer install
dari dalam semua modul dengan dependensi.
Bagaimana cara membuat Drupal menyadari ketergantungan modul tanpa menggunakan manajer komposer dan / atau inti peretasan?
MEMPERBARUI:
The komposer merge Plugin yang digunakan oleh inti muncul untuk memiliki mendukung jalur wildcard:
{
"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
}
}
}
Mengapa inti tidak bergabung modules/*/composer.json
, itu akan menyelesaikan segalanya dengan benar?
Pembaruan 2:
Alasan untuk tidak mendukung ini tercakup dalam masalah ini (yang juga telah diam selama beberapa waktu sekarang).
composer.json
file adalah cara baru yang disarankan dan keringanan untuk mengunduh dan memasang modul sedang diganti? Jelas komposer akan secara otomatis menyelesaikan dependensi bertingkat dan memang juga mengunduh dependensi saya.