Saya sudah terbiasa melakukan panel konfigurasi yang cukup kuat untuk modul saya sekarang, dan saya menemukan nama variabel & manajemen cukup menyakitkan .
Saya memiliki variabel suka mymodule_section_subvar_varname_type_context
dan saya tidak hanya kehilangan urutan elemen dalam nama variabel saya, tetapi saya merasa seolah-olah memiliki nama variabel yang lama merupakan cacat desain.
Saya telah mempertimbangkan untuk menggunakan array serial dalam suatu variabel mymodule_section_settings
bersamaan dengan serangkaian fungsi yang membuatnya mudah untuk mempertahankan array itu, tetapi saya akan menyukai beberapa input dalam apa (jika ada) praktik terbaik yang telah dibuat di luar awalan dan / atau contoh modul yang kami percayai dan apa yang mereka lakukan untuk set variabel yang besar.
Terima kasih!
sumber
Jawaban:
Dimungkinkan untuk menggunakan variabel Drupal untuk mengandung array; itulah yang dilakukan modul inti Drupal (lihat book_type_is_allowed () ).
Dimungkinkan untuk menggunakan variabel Drupal tunggal untuk berisi pengaturan berbeda yang digunakan oleh modul ke dalam array. Dengan
#tree
atribut form masih dimungkinkan untuk menggunakan system_settings_form () untuk menyimpan array ke dalam variabel Drupal tanpa menulis kode tambahan apa pun. Memisahkan serialisasi kode secara otomatis dilakukan oleh fungsi inti Drupal yang menangani variabel Drupal (lihat kode variable_set () ).Pertanyaannya kemudian: kapan variabel Drupal tunggal harus digunakan untuk berisi pengaturan yang berbeda? Saya akan menggunakan variabel tunggal untuk pengaturan yang digunakan oleh suatu fungsi, atau sekelompok fungsi; jika array berisi nilai-nilai yang digunakan oleh (misalnya) 10 fungsi yang berbeda, tetapi fungsi-fungsi tersebut mengakses nilai tunggal (atau beberapa nilai) dari array itu, maka saya tidak akan menggunakan variabel persisten tunggal untuk pengaturan.
sumber
Jika satu set pengaturan terkait maka menempatkannya dalam array masuk akal. Misalnya jika Anda melakukan
several variable_get
secara berurutan. Ini memberi Anda beberapa fleksibilitas serta berpotensi sedikit lebih cepat.Namun ini akan mempersulit program lain untuk mengedit pengaturan Anda secara manual melalui sesuatu seperti drush vset atau strongarm. Dalam kasus ini, nama variabel yang panjang sebenarnya dapat membantu.
sumber