Nguyen Tien Si

Cơ chế Hook của Drupal

Hook là gì?

Hook là một kỹ thuật mà ở đó cho phép chặn, bắt, theo dõi, xử lý các sự kiện (event) từ ứng dụng tới ứng dụng, ứng dụng tới hệ điều hành và hệ điều hành tới ứng dụng hay nói cách khác là có thể chặn, bắt, theo dõi, xử lý các sự kiện trước khi nó tới nơi tiếp nhận.

Ví dụ:

Cách làm việc của chương trình soạn thảo văn bản Unikey, và chương trình từ điển Lingoes. Cách làm việc của chúng là đón lấy các sự kiện về gỏ bàn phím, và các sự kiện từ con chuột để xử lý các thao tác riêng.

Xét về phạm vi hoạt động thì có hai loại Hook:

  • Hook toàn cục (có phạm vi ảnh hưởng tới toàn hệ thống).
  • Hook cục bộ (chỉ có tác dụng trên ứng dụng được cài Hook).

Cơ chế Hook của Drupal:

Trong Drupal các Hook được định nghĩa trong nhân của Drupal (có thể phát triển thêm các Hook mới), chúng được xem như là các sự kiện (event) và được gọi chung là các hàm callbacks. Các module dùng các Hook để tương tác với nhân Drupal mà không cần phải chỉnh sửa trực tiếp trong nhân.

Hook trong Drupal có dạng như sau: hook_user() -> mymodule_user() trong đó mymodule là tên module còn user là tên hook.

Ví dụ:

Khi user đăng nhập vào hệ thống Drupal, Drupal phát sinh ra hook_user(), có nghĩa là tất cả các module có dùng tới hàm hook_user() sẽ được gọi.

Các loại Hook trong Drupal:

Trong Drupal có nhiều loại Hook, mỗi Hook thực hiện nhiệm vụ khác nhau, các bạn có thể xem chi tiết về hook tại http://api.drupal.org/api/group/hooks/6.

No comments

Add your comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account, used to display your avatar.
  • You can use Markdown syntax to format and style the text. Also see Markdown Extra for tables, footnotes, and more.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

More information about formatting options