在 Drupal 7(和 Drupal 6?)系统中,什么“开始”钩子调用过程,或者“顶级”钩子调用位于何处?
根据我目前对 Drupal 模块系统的理解,任何模块都能够为另一个模块创建一个钩子来实现。这意味着 Drupal 的大部分执行是为其他模块实现钩子的模块,这些模块又为其他模块提供钩子来实现。
我不清楚的是,是否有一个初始的、顶级的钩子在引导程序中被调用来启动这个过程,或者是否有几个非模块调用启动了钩子调用过程,或者其他什么(道歉这是模糊和新奇的,但就像我说的我不明白)
我查看了_drupal_bootstrap_full
函数,最后有一个有希望的
module_invoke_all('init');
然而,我对modules/
文件夹的搜索只找到了一个“init”钩子函数,这似乎不是一个启动点
system/system.api.php
1737:function hook_init() {
function hook_init() {
drupal_add_css(drupal_get_path('module', 'book') . '/book.css');
}
所以,这对我来说是模块系统之外的一些东西,这一切都开始了。这发生在一个地方还是多个地方。这些地方在哪里?
我目前不是 Drupal 的重度用户。我的最终目标是孤立地理解 Drupal 的模块系统,这样我就可以调查和了解 Drupal 如何使用它的模块来构建大多数人认为是 Drupal 的应用程序。欢迎任何/所有解释,但我试图从架构的角度理解事物。我知道你不需要这些知识来使用 Drupal,但是我的大脑已经坏了,在我知道 PHP 基本代码在做什么之前不会让我继续前进。