Praktik terbaik untuk nama variabel modul khusus?


8

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_contextdan 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_settingsbersamaan 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!


Juga, saya juga ingin mempertimbangkan pembaruan dalam hal ini (itulah sebabnya saya condong ke arah serialisasi array) sehingga membuat perubahan pada nama variabel tidak menjadi data yatim dan menambahkan pekerjaan tambahan untuk fungsionalitas / tes jalur peningkatan tambahan
electblake

Jawaban:


7

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 #treeatribut 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.


Apakah Anda / ada yang tahu bagaimana jenis skenario ini akan bereaksi dalam Fitur dan / atau Strongarm? Aku benci mengunci modul-modul itu dan para pengguna yang menghargai mobilitas yang bisa dibawa modul-modul itu.
electblake

Saya tidak melihat alasan mengapa Fitur memiliki masalah dengan variabel Drupal yang berisi array. Orang lain dapat melaporkan Anda secara detail jika itu sepenuhnya benar, atau tidak.
kiamlaluno

ya, saya mengerti ini mungkin sedikit di luar cakupan pertanyaan ini - tetapi ingin memastikan standar ini bekerja untuk semua orang :) Saya akan melaporkan setelah saya mencoba beberapa hal.
electblake

2

Jika satu set pengaturan terkait maka menempatkannya dalam array masuk akal. Misalnya jika Anda melakukan several variable_getsecara 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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.