Hook merupakan terminologi yang digunakan dalam Drupal khusus untuk pembangunan modul. Hook membenarkan modul-modul berinteraksi dan berkomunikasi dengan Drupal core.

Modul Drupal menggunakan sepenuhnya sistem hook dalam menjalankan setiap satu fungsinya. Hook sebenarnya adalah gugusan kod PHP yang dirangkumkan dalam sintaks function() dengan format module_hookname(). Di mana module merupakan nama modul tersebut dan hookname adalah nama bagi hook.

Setiap hook mempunyai fungsi dan arahan yang spesifik dijalankan. Satu modul akan mengembangkan fungsi Drupal apabila ianya mendaftarkan satu hook yang baru di dalam sistem. Apabila Drupal dijalankan sepenuhnya, ia akan mengesan dan memanggil semua hook yang telah didaftarkan proses terjemahan maklumat dilakukan selepas semua keperluan dipenuhi.

Konsep hook dalam Drupal

Apa itu hook?-9631

Dalam gambar di atas menerangkan konsep mudah mengenai hook. Pada pemasangan asas Drupal, Drupal core atau kerangka asas Drupal (biru gelap) diaktifkan pada pelayan (hijau). Kerangka Drupal menyediakan sistem bagi pendaftaran dan pengurusan kandungan daripada pangkalan data.

Pada asasnya, ini sahaja Drupal. Jika dilihat sistem ini hanya sekadar kerangka kosong. Perhatikan di dalam direktori root terdapat satu folder yang dinamakan modules. Ia merupakan modul-modul yang hadir atau telah diasimilasikan sepenuhnya dengan pakej Drupal.

Sewaktu Drupal dipasang, beberapa modul telah diaktifkan sepenuhnya bagi menghasilkan sistem pengurusan kandungan. Katakan terdapat tiga modul dipasang pada peringkat awal iaitu module_1, module_2 dan module_3. Setiap modul mempunyai hook atau fungsi tersendiri yang didaftarkan di dalam sistem Drupal core.

Pada peringkat ini, Drupal core akan berkembang dan menentukan keperluan minimum bagi spesifikasi pelayan untuk menyokongnya. Modul-modul ini akan berinteraksi dengan Drupal core bagi menjalankan proses selanjutnya.

Setiap versi major Drupal, pendaftaran hook atau sistem hook ini akan berbeza sama ada hook ditambah atau dikurangkan untuk penerbitan hook baru yang jauh lebih stabil dan fleksibel.

Drupal core sendiri mempunyai hook yang disediakan bagi kegunaan modul-modul. Senarai hook yang penuh pada pelantar Drupal 6 boleh dilihat di laman hook Drupal 6 manakala untuk Drupal 7 pada laman hook module Drupal 7.

Penggunaan semula hook yang didaftarkan

Apa itu hook?-9632

Sememangnya sistem pengurusan kandungan tidak akan lengkap sekiranya tidak menggunakan modul tambahan (modul diluar pakej asas Drupal). Modul-modul tambahan ini boleh dimuat turun di laman rasmi Drupal.org.

Katakan sebagai contoh satu modul tambahan iaitu module_4 dimuat turun dan dipasang pada Drupal. Pada ketika ini, Drupal core diperkembangkan sekali lagi daripada asal (biru terang). Pada masa yang sama hook_8 didaftarkan di dalam sistem untuk memberi fungsi tambahan.

Perhatikan pada module_4 terdapat hook_5 yang diguna pakai yang asalnya ditakrif dalam module_2. Inilah kekuatan dan kehebatan Drupal sebagai sistem modular. Fungsi yang sedia ada pernah didaftarkan tidak perlu ditulis dalam setiap modul seandainya ianya sedia ada untuk digunakan. Dalam erti kata lain, proses komunikasi ini dinamakan Application-Programming Interface atau API (Apa itu API (Application-Programming Interface)).

Situasi ini juga menjelaskan maksud dependance (kebergantungan) atau depend on (bergantung kepada) untuk setiap pemasangan modul. Hook yang diperlukan oleh modul ini perlu aktif terlebih dahulu sebelum ianya boleh digunakan sepenuhnya.

Penambahan modul ketiga akan menyebabkan keperluan minimum Drupal semakin bertambah. Ini antara sebab mengapa ramai yang berpendapat Drupal kurang atau tidak sesuai dijalankan pada pelayan jenis perkongsian; Jenis-jenis pengehosan web (Web hosting) (selalunya mempunyai spesifikasi yang terhad). Hakikatnya tidak benar. Seandainya penggunaan modul dikawal dan hanya yang PERLU sahaja digunakan, ianya boleh dijalankan dengan selamat walaupun pada spesifikasi minimum.

Penggunaan modul tambahan yang esktrem

Apa itu hook?-9633

Tidak dinafikan terdapat beberapa pembangun yang taksub dengan pemasangan modul secara ekstrem sehingga mengakibatkan Drupal tergantung pemprosesannya (White Screen of Death, WSOD).

Proses pengaktifan modul akan berterusan mengembangkan Drupal core selaras dengan pertambahan bilangan modul yang baru. Sehingga kepada satu tahap di mana pelantar Drupal lebih atau sangat besar untuk dipenuhi oleh spesifikasi sesuatu pelayan. Dalam kes ini, andaikan pengaktifan satu module_5 mengarah Drupal core dikembangkan melebihi spesifikasi pelayan.

Pelayan sepatutnya ditingkatkan (hijau terang) untuk selaras dengan keperluan minimum Drupal sekarang. Seandainya ianya tidak dapat dipenuhi, pemprosesan Drupal akan tergantung atau dipanggil WSOD.

Pada pelayan jenis perkongsian, agak sukar untuk mengatasi masalah ini. Selalunya dicadangkan

  • untuk beralih kepada jenis pelayan yang lebih tinggi atau
  • mengurangkan jumlah penggunaan modul tambahan (atau yang tidak perlu).
Penilaian: 
Average: 5 (1 vote)