Nguyen Tien Si

Ý nghĩa số N của hook_update_N trong Drupal

Thông thường sau mỗi lần nâng cấp module mới trong Drupal, thì cơ sở dữ liệu sẽ bị thay đổi do nhu cầu thiết kế. Nên Drupal xây dựng một hook để hổ trợ việc update cơ sở dữ liệu khi có nhu cầu nâng cấp module. Hook đó có tên là hook_update_N.

Hook này được gọi mỗi khi chạy file update.php ở thư mục gốc của site, ví dụ http://www.example.com/update.php. Trong hook này có kí tự N đại diện cho chữ số. Chữ số này có cấu trúc XYZZ gồm 3 phần sau: X, Y và ZZ

  • Chữ số đầu tiên đại diện cho số phiên bản của core Drupal, ví dụ Drupal 7 thì số đó là 7, Drupal 6 là số đó là 6.
  • Chữ số thứ 2 đại diện cho phiên bản của module mà bạn phát hành ví dụ: 5.x-1.* (số đó là 1) hoặc 5.x-2.* (số đó là 2).
  • Hai chữ số cuối cùng đại diện cho số đếm bắt đầu từ 00

Xem ví dụ dưới đây:

  • mymodule_update_5200() hook này được chạy đầu tiên và được chạy khi cài module mymodule 5.x-2.*.
  • mymodule_update_6000() hook này được chạy khi cài ở Drupal 6 với core là 6.x
  • mymodule_update_6100() hook này được chạy đầu tiên và được chạy khi cài module mymodule 6.x-1.*
  • mymodule_update_6200() hook này chạy trên Drupal 6 với phiên bản mymodule 6.x-2.*, chú ý: người dùng có thể update từ 5.x-2.* tới 6.x-2.* thông qua hai hook ứng với số N như 60ZZ và 62ZZ nhưng không update thông qua số 61ZZ, bởi vì 61ZZ cho biết module đó thuộc brand là 6.x-1.x.

Xem chi tiết hook này tại http://api.drupal.org/api/function/hook_update_N/7

1 comment

Anonymous's picture

Anh Sĩ nói rõ về N. Nói zậy

Anh Sĩ nói rõ về N.
Nói zậy ko ai hiểu

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