- 初做drupal的模块开发,了解了一下hook。 在大多数的资料中了解hook,由于之前c#做了很久很久,总将hook理解为类似event的东西。 在drupal执行某个步骤的时候就会调用模块里的hook。 这样理解是没错,而且大多数网上的资料也是这么描述的。 但是,不够全面。 稍微深入的实践以后,用面向对象的思路重新理解了hook机制。 比起event,hook机制更类似于面向对象语言中的interface。 可以这么看,drupal 有一个很大很大的interface,他叫module。所有的hook 都是module 这个interface定义好了的,包含函数和属性(从return中获取值后drupal创建相应的内容或物件,我将其看作是interface中的属性,为了好理解,毕竟所有东西都用函数来理解很容易混淆,虽然函数有返回值和没返回值都是存在的)