逐渐消失的钩子机制(Drupal8系列)
很早以前,我们学习Drupal的时候,都会被告知,钩子(Hook)机制,是Drupal中最核心的概念。在Drupal7里面,钩子大概分类3类:module_invoke_all调用的钩子,module_invoke调用的钩子,以及主题函数也被称之为主题钩子。
我曾经给人讲过,Drupal7,是最后一个面向过程的版本,而Drupal8则是第一个面向对象的版本。从面向过程,到面向对象,底层的代码经过了一系列的重构,这也使得Drupal能够充分的利用已有的语言层级的先进技术。
实际上,在Drupal7中,核心里面,很多地方都已经使用了面向对象的技术,但是此时的面向对象,只是起到辅助性质的作用,面向过程则是最基础的;但是这并不影响,第三方模块向面向对象的转变,很多的第三方模块,底层都是基于面向对象的。比如说Feeds、Views模块,而我在Drupal7下面所写的Field validation模块,第一版是面向过程的,第2版主要就是基于面向对象的。