kapan harus menggunakan file include (inc) dalam pengembangan modul

10

Saya rasa saya mengerti perbedaan struktural dari file .inc (dibandingkan dengan .module), tetapi dapatkah seseorang menggambarkan perbedaan desain? Saya melihat modul contoh drupal yang memanggil file .inc dengan hook_menu, atau saya melihat file panggilan .inc untuk definisi fungsi.

  • Dalam keadaan apa seseorang menaruh kode dalam file .inc? Adakah garis pedoman desain umum yang dipatuhi?
  • Apakah ada keuntungan selain kejelasan mengapa seseorang menggunakan file .inc? kinerja? versi?

Terima kasih!

Joe
sumber
1
Anda tidak bisa mendapatkan penjelasan yang lebih baik daripada jawaban yang diterima untuk pertanyaan ini menurut saya :)
Clive
3
secara pribadi, jika saya memiliki mod yang mendukung beberapa url atau apa pun, saya menggunakan .incper url. hanya organisasi saya kira alih-alih membuang fungsi acak ke dalam satu .modulefile besar . tetapi sebagai referensi posting @ Clive, itu benar-benar hanya pendapat pribadi atau apa yang Anda terbiasa. tidak ada benar atau salah di sini.
au_stan
1
memang, saya telah menggunakan modulename.preprocess.inc, modulename.node.inc, modulename.menu.inc dll untuk memecah modul besar menjadi potongan wajar dari fungsi terkait, tetapi satu-satunya alasan nyata dari sudut pandang kinerja untuk menggunakannya di luar pengembangan organisasi mungkin jika modul Anda memiliki beberapa fungsi yang agak besar yang jarang disebut bahwa Anda tidak ingin mesin php Anda menguraikan setiap kali itu dimuat. Anda kemudian dapat membawa mereka ketika dibutuhkan, seperti bagaimana hal-hal dilakukan dengan menu callback termasuk.
Jimajamma
Untuk apa nilainya, saya kelompokkan implementasi hook saya dan fungsi pembantu dan mengkategorikan blok doc mereka menggunakan konvensi penamaan yang sesuai (dalam CAPITALS). Jadi ketika saya menggulir kode modul saya, saya dapat melihat pemisahan antara berbagai kelompok fungsi. Saya melihat standar komentar untuk melihat apakah suatu sistem sudah ada, tetapi saya bisa melihatnya.
dbj44

Jawaban:

12

Sebagai aturan umum, saya akan memasukkan file modul kode yang diperlukan lebih sering (misalnya fungsi pembantu yang digunakan dari lebih dari satu fungsi), dan dalam file .inc kode yang tidak sering digunakan, atau yang digunakan untuk spesifik halaman.

Sejak Drupal 6, kode secara otomatis memuat file yang berisi panggilan balik halaman, atau pembangun formulir yang digunakan untuk item menu. Untuk alasan itu, pemanggilan kembali halaman untuk halaman administratif biasanya memakai file .admin.inc, sedangkan panggilan balik halaman untuk halaman normal diletakkan pada file .pages.inc.

Sejak Drupal 7, file yang berisi kelas dimuat secara otomatis ketika kelas dipakai. Drupal 7 memungkinkan modul untuk menentukan di mana file kaitnya ditentukan (melalui hook_hook_info () ). Misalnya, system_hook_info () mendefinisikan file .tokens.inc sebagai file mana hook_token_info(), hook_token_info_alter(), hook_tokens(), dan hook_tokens_alter()implementasi dapat ditemukan; dengan cara ini, file-file itu dimuat secara otomatis ketika salah satu dari kait itu diperlukan.
Ini memungkinkan untuk lebih lanjut membagi kode dalam file yang dimuat saat diperlukan, dan kode yang selalu dimuat dari Drupal.

kiamlaluno
sumber