Saya telah melihat beberapa hal melayang di internet yang tidak kekal (yaitu Twitter) yang beberapa perubahan terbaru pada Magento 2 memungkinkan untuk memasang modul ke direktori vendor melalui komposer, dan Magento 2 akan melihat modul Anda tanpa ada tindakan bodoh yang menyatu. .
Jika ini benar, apakah ada file "minimum composer.json
" mengambang untuk pengembang modul untuk digunakan dengan modul mereka agar pengguna Magento 2 menginstalnya ke dalam sistem mereka?
Jawaban:
Memperbarui
Sepertinya beberapa hal berubah dengan beberapa perubahan terbaru (7 Oktober) di cabang berkembang. Sekarang sepertinya memungkinkan untuk mendukung modul yang tinggal di direktori vendor.
Saya membuat dua contoh menginstal modul. Satu yang menyalin file ke aplikasi / kode dan yang lain yang mendaftar modul di mana ia berada di direktori vendor.
Strategi Salin: https://github.com/mttjohnson/magento2-sample-module-minimal-copy Strategi Registrasi: https://github.com/mttjohnson/magento2-sample-module-minimal-register
Untuk tujuan pengembangan saya pikir menggunakan strategi registrasi lebih berguna karena file yang sedang dijalankan oleh Magento dapat langsung dimodifikasi, diuji dan kemudian berkomitmen kembali ke modul repo.
Jawaban Asli
Jika Anda memiliki
composer.json
file untuk paket komposer modul yang berisi jenismagento2-module
file maka secara default akan disalin ke direktori yang dipetakan tertentu dalamapp/code
direktori.Dalam contoh ini composer.json nama paket komposer
vendorname/module-name
akan menghasilkan file untuk paket komposer yang ditempatkanvendor/vendorname/module-name
.Jenis khusus
magento2-module
diimplementasikan sebagai komposer-plugin dalam paket magento / magento-komposer-installer . Itu sebabnya saya telah mendaftarkannya di bagian yang diperlukan. Ini adalah komposer-plugin ini yang melakukan penyalinan file keapp/code
direktori magento yang sesuai .The
extra: {map: [["composerDir","MagentoDir"]]}
bagian direferensikan oleh installer komposer-plugin untuk tahu apa bagian dari paket komposer Anda untuk memetakan apa bagian dari struktur direktori Magento Anda. Dalam contoh yang diberikan ini akan mengambilvendor/vendorname/module-name/module
dan menyalin file dari sana keapp/code/VendorName/ModuleName
.sumber
Sepertinya sesuatu seperti ini yang seharusnya melakukan trik.
Kuncinya di sini adalah bagian autoloader. Ini mengatur autoloader PSR-4 yang menunjuk pada file kelas Anda, dan secara otomatis memuat file Anda
registration.php
. Ketika komposer menjatuhkan file dalam vendor dan membuat kembali file autoload, Magento harus dapat melihat modul Anda.Satu efek samping yang rapi dari ini - kode tidak perlu lagi berada di
app/code
!sumber