Beberapa artikel mendorong untuk membuat ekstensi khusus di app/code
dan beberapa lainnya mendorong untuk membuatnya di bawah vendor
. Apakah kedua metode ini baik-baik saja?
Bagaimana jika saya ingin mengganti modul vendor
? Apakah saya perlu menulis modul khusus saya juga di dalam vendor
folder atau app/code
?
Apakah mereka bertindak sebagai codepools seperti di Magento 1.x?
Tolong ada yang menjelaskan tujuan masing-masing direktori.
magento2
magento-2.1
extensions
Sukeshini
sumber
sumber
Jawaban:
Anda bisa melihat folder
app/code
danvendor
sebagai codepools dalam M1, tetapi mereka tidak benar-benar codepools.Tidak ada konsep "codepool" di M1.
vendor
folder adalah untuk modul yang Anda unduh melalui komposer. Anda tidak boleh menulis kode di folder itu.app/code
adalah taman bermain Anda. Tambahkan ekstensi Anda sendiri di sini.Jika Anda perlu menulis ulang / memperluas sesuatu di
vendor
folder Anda dapat melakukannya diapp/code
folder. Pastikan Anda menentukan ketergantungan lunak padamodule.xml
modul Anda, seperti yang Anda lakukan padaapp/etc/modules/Namespace_Module.xml
file M1 .Satu-satunya perbedaan adalah bahwa dalam m2 mereka sebenarnya bukan dependensi. Mereka adalah urutan.
Dengan cara ini modul Anda akan diambil setelah dari
vendor
foldersumber
app/code
bukan taman bermain;)XM
file L dalam modul vendor, apakah kami masih harus menyebutkan dependensi di dalamnyamodule.xml
?app/code
kasus itu, tetapi Anda masih bisa menambahkan modul Anda sendiri. Dan satu-satunya alasan Anda harus menginstal m2 via github adalah untuk bermain-main dengannya dan / atau berkontribusi padanya. Jadi ini secara teknis masih membuatapp/code
taman bermain Anda.app/code/Vendor
adalah taman bermain Anda jadi tidak ada risiko untuk memecahkan halapp/code
jelas merupakan tempat yang tepat untuk modul projet Anda.Anda tidak boleh menulis kode di dalam
vendor
(direktori ini tidak diabaikan ke dalam kontrol sumber Anda), karena dikelola oleh komposer saja dan didedikasikan untuk modul atau modul pihak ketiga yang ingin Anda gunakan kembali (dan Anda telah menerbitkan pada packagist atau repositori satis Anda sendiri ).sumber