Mengapa menggunakan tema ketika Anda memiliki modul?

9

Di dalam modul khusus saya, saya telah menambahkan file

Vendor/Theme/view/layout/default.xml

yang saya gunakan untuk mengganti banyak templating global situs dengan templat / blok / tata letak dari modul khusus. Saya juga melampirkan gaya global saya sendiri yang ada di view/webdirektori dalam modul itu.

Haruskah saya menggunakan tema untuk ini? Apakah ada argumen yang baik untuk satu pola desain di atas yang lain? Misalnya. menggunakan app/designlebih dari app/code?

Daniel Thompson
sumber

Jawaban:

13

Anda dapat melakukan apa pun yang Anda suka, tetapi jika itu adalah hal yang benar untuk dilakukan, itu adalah pertanyaan di sini.

Modul

Modul harus menambah atau mengubah fungsionalitas webshop dan harus / dapat ditransfer ke webshop Magento 2 lainnya. Modul dapat memiliki tata letak, templat, dan penataan sendiri dan dapat mengubah tata letak, templat, dan penataan umum jika itu diperlukan untuk fungsionalitas modul Anda. Modul sebagian besar fokus pada satu fungsi dan karena itu (relatif) kecil dan itu membuat Magento 2 memiliki banyak bengkel.

Modul dapat dengan mudah diaktifkan dan dinonaktifkan yang akan menyebabkan fungsi spesifik yang mereka tambahkan atau ubah muncul atau hilang. Seharusnya tidak menyebabkan seluruh situs berubah.

Tema

Tema mengubah tata letak, templating, dan penataan webshop global dan seharusnya tidak menambah atau menghapus fungsi. Meskipun tema paket (berbayar) dapat mencakup fitur-fitur khusus, ini paling sering dilakukan dalam modul yang menyertai tema tersebut. Tema harus dapat dipertukarkan, sehingga dapat diterapkan ke webmaster Magento 2 mana pun, tetapi webmaster Magento 2 dapat bertukar tema dengan mudah (atau memiliki beberapa tema misalnya dalam pengaturan multi store).


Jadi, jika Anda bertanya di mana "menimpa banyak templating global situs dengan templat / blok / tata letak" , jawabannya akan menjadi tema .

Sekali lagi, Anda dapat melakukan apa pun yang Anda suka, tetapi jika orang lain akan bergabung atau mengambil alih pengembangan, ia akan mengharapkan perubahan tema situs global berada dalam tema dan bukan dalam modul. Ketika hal-hal tidak dilakukan seperti yang diharapkan, ini memperlambat pengembangan dan membuat pemeliharaan sulit.

7ochem
sumber
1
Tepat, saya ingin melakukan hal-hal dengan cara yang benar. Menghargai jawaban yang bermanfaat ini, saya akan mulai memigrasikan beberapa perubahan ini ke suatu tema.
Daniel Thompson
3

Jawaban ini adalah apa yang saya pikir ini bukan standar Magento

Kapan menggunakan tema untuk tata letak dan templat dan kapan menggunakan Modul

Tema

Ketika Anda membutuhkan perubahan Anda harus menjadi satu tempat Anda perlu menunjukkan perubahan Anda harus terlihat berbeda, di toko atau situs web yang berbeda dan Anda memiliki beberapa tema maka Anda dapat melakukan perubahan dalam tema secara langsung

Modul

ketika Anda sedang mengembangkan modul atau ekstensi untuk kebutuhan dan Anda pikir perubahan Anda harus secara global maka Anda meletakkan tata letak dan template dalam modul itu sendiri

Apa yang saya sarankan selalu buat satu salinan master dalam modul dan jika Anda ingin mengubah sesuai dengan kebutuhan Anda, salin dalam tema dan buat perubahan dalam template.

Dengan cara ini Anda dapat memecahkan masalah seperti jika tema diubah lalu juga file modul Anda ada di sana

Murtuza Zabuawala
sumber