Tôi đã tìm thấy Phụ thuộc trong một mô-đun tùy chỉnh với trình soạn thảo drupal , Làm cách nào tôi có thể đưa thư viện của bên thứ ba vào mô-đun tùy chỉnh của mình mà không cần sử dụng Trình quản lý trình soạn thảo và Cách quản lý các phụ thuộc của trình soạn thảo mô-đun phụ thuộc vào câu hỏi của tôi, nhưng không dường như còn áp dụng kể từ Drupal 8.1 và sự phản đối của người quản lý Trình soạn thảo .
Ngoài ra các hướng dẫn phổ biến như Giới thiệu dứt khoát về D8 và Trình soạn thảo dường như không còn được áp dụng vì họ cũng đề cập đến trình quản lý nhà soạn nhạc.
Giải pháp khác trái ngược với trình quản lý nhà soạn nhạc, thay đổi tệp composer.json lõi có cảm giác như bị hack quá nhiều lõi và có thể sẽ bị hỏng với mỗi bản cập nhật Drush của lõi Drupal (?).
Cụ thể hơn, tôi đang cố gắng cập nhật Lượt xem vCards từ Drupal 7 lên 8. Tôi đã tạo tệp composer.json của mình như sau:
{
"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.*"
}
}
Nhưng nếu tôi đặt tệp composer.json trong thư mục mô-đun của mình, làm cách nào để Drupal biết rằng tệp đó có ở đó và làm cách nào để đảm bảo zipstream-php
thư viện được yêu cầu được tải xuống?
Chỉ cần chạy composer update
từ gốc Drupal sẽ cập nhật rất nhiều phụ thuộc của Drupal, nhưng nó không bao gồm các tệp composer.json có trong các thư mục mô-đun. Tôi cũng không cho rằng tôi nên gọi composer install
từ bên trong tất cả các mô-đun với các phụ thuộc.
Làm cách nào để Drupal nhận thức được sự phụ thuộc của mô-đun mà không cần sử dụng trình quản lý nhà soạn nhạc và / hoặc cốt lõi hack?
CẬP NHẬT:
Các nhà soạn nhạc merge có plugin được sử dụng bởi lõi dường như đã hỗ trợ một con đường 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
}
}
}
Tại sao không hợp nhất cốt lõi modules/*/composer.json
, điều đó sẽ giải quyết mọi thứ phải không?
Cập nhật 2:
Lý do cho việc không hỗ trợ này được đề cập trong vấn đề này (hiện tại cũng đã im lặng một thời gian).
composer.json
tệp là cách mới được đề xuất và drush để tải xuống và cài đặt các mô-đun đang được thay thế? Rõ ràng là nhà soạn nhạc sẽ tự động giải quyết các phụ thuộc lồng nhau và thực sự cũng tải xuống các phụ thuộc của tôi.