Saya mulai melihat semakin banyak orang yang mendeklarasikan kelas pembantu agar dapat menggunakan yang berikut ini di file templat:
$this->helper('Path/To/Helper/Class')->customMethod();
Jenis kode ini memungkinkan orang menghindari jangan menggunakan pembatasan objek manajer secara langsung tetapi saya cenderung melihat kode yang harus menjadi kode blok di pembantu itu.
Jadi inilah pertanyaanku:
- apa yang harus ditulis di kelas pembantu?
- dalam hal apa relevan menggunakan metode pembantu dalam templat?
sumber
di.xml
untuk tipe kelas blok, jangan menyimpan beberapa konfigurasi tata letak. Saya mencoba misalnya untuk melakukannya untuk kelas\Magento\Catalog\Block\Product\View\Type\Simple
, templatedefault.phtml
yang digunakan dalam template kita diabaikan. Tidak ada petunjuk mengapa saat iniSaya melihat bantuan sebagai fungsi global di dalam modul Anda (maaf untuk kata 'global'), dan kontrak manajer / layanan sebagai fungsi global yang diizinkan untuk digunakan di dalam maupun di luar modul Anda.
Jika Anda mengikuti prinsip ini, Anda akan melihat ada penggunaan minimal untuk pembantu, saya hanya menggunakannya sebagai pembungkus konfigurasi dalam modul saya.
Hal semacam ini. Jika Anda memiliki fungsionalitas lain yang mungkin praktis di luar modul Anda, buat manajer sebagai gantinya.
Di dunia yang ideal, pengembang pihak ke-3 yang membutuhkan fungsionalitas modul-modul lain hanya perlu melihat-lihat antarmuka yang tersedia untuk repositori dan manajer dan hal-hal lain di
Api
folder.sumber