- 论坛徽章:
- 0
|
drupal系统以他的众多模块而出名
他的模块化设计核心是hook钩子思想。和我们常说的MVC思路完全不同。
他在自己的页面上声称自己是不用class的面向对象的编程方法。
简要翻译一段关于钩子的说明
http://drupaldocs.org/api/head/f ... per/topics/oop.html
http://drupaldocs.org/api/head/function/aggregator_help
--------
钩子
--------
允许模块与核心互动
Drupal的模块系统是建立在"hook钩子"这个概念上的.一个钩子就是一个名字类似于foo_bar()的函数.这里,foo就是模块的名字,bar就是钩子的名字.每个钩子都有其设定参数和特殊的结果类型.
为了扩展drupal,只需要把模块实现为一个钩子.如果drupal允许模块来访问内核,它就会让哪个模块实现一个钩子,然后呼叫这个钩子来激活模块。
如果模块名example.module那么hook_help的具体实现的函数名就肯定是example_help()
用来决定哪个模块来实现钩子是在module_hook函数和module_implements函数决定的.位于module.inc
-------------------------
另外一段
钩子hook架构
钩子是界面抽象的基础。钩子定义了能被调用的方法或模块。如果模块实现了钩子,它的入口就是一个钩子,等待被呼叫。呼叫他的人不必知道具体实现的细节。
--------------------------
我不能理解,为什么不简单的使用OOP的继承呢??
有哪位高人能够解释一下他的运作办法。
[ 本帖最后由 HonestQiao 于 2005-11-30 11:47 编辑 ] |
|