Drupal Hook_引导和用户访问

Drupal Hook_引导和用户访问,drupal,hook,drupal-modules,Drupal,Hook,Drupal Modules,我正在覆盖Drupal7.10项目中的hook_引导,并试图从中加载一个用户帐户。我得到以下错误 调用未定义的函数实体_load() 你知道为什么会这样吗?这是我的密码 function appcore_boot() { drupal_load('module', 'user'); $account = user_load(array('uid' => 1)); } user_load()调用user_load_multiple(),后者调用存储在common.inc中的实

我正在覆盖Drupal7.10项目中的hook_引导,并试图从中加载一个用户帐户。我得到以下错误

调用未定义的函数实体_load()

你知道为什么会这样吗?这是我的密码

function appcore_boot() {
   drupal_load('module', 'user');
   $account = user_load(array('uid' => 1)); 
}
user_load()调用user_load_multiple(),后者调用存储在common.inc中的实体_load()。然而,“这个钩子是在模块或大多数包含文件加载到内存之前调用的,它发生在Drupal仍处于引导模式时

有什么理由不使用hook_init():

user_load()调用user_load_multiple(),后者调用存储在common.inc中的实体_load()。但是,“在模块或大多数包含文件加载到内存之前调用此挂钩。这发生在Drupal仍处于引导模式时

有什么理由不使用hook_init():


如果无法将其移动到
hook_init
中,那么确保加载
common.inc
的简单方法是调用:

drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
在调用
user\u load
之前,只需将其放在
hook\u引导中即可。您可能甚至不需要
DRUPAL\u BOOTSTRAP\u FULL
来加载
common.inc
,但这正是我测试它的目的

我在这里看到的是文件,其中说明:

此函数在hook_boot()中不可用,因此请改用$\u GET['q']。但是,在执行此操作时要小心,因为在示例中#3$_GET['q']将包含“路径/别名”。如果需要“node/306”,调用drupal\u引导(drupal\u引导\u FULL)可以使用此函数


如果无法将其移动到
hook_init
中,那么确保加载
common.inc
的简单方法是调用:

drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
在调用
user\u load
之前,只需将其放在
hook\u引导中即可。您可能甚至不需要
DRUPAL\u BOOTSTRAP\u FULL
来加载
common.inc
,但这正是我测试它的目的

我在这里看到的是文件,其中说明:

此函数在hook_boot()中不可用,因此请改用$\u GET['q']。但是,在执行此操作时要小心,因为在示例中#3$_GET['q']将包含“路径/别名”。如果需要“node/306”,调用drupal\u引导(drupal\u引导\u FULL)可以使用此函数


我不能使用hook_init,因为无论页面是否缓存,我都需要调用它。我在这个钩子中看到了一些使用user_load的人的例子,似乎没有其他人遇到这个问题,这就是为什么我认为这很奇怪的原因。有什么办法吗?在这一点上加载common.inc文件安全吗?这是有道理的,Morgan和我想不出你为什么不能加载common.inc。让我知道它是否有效,我将编辑上面的帖子。我不能使用hook_init,因为我需要调用它,无论页面是否缓存。我在这个钩子中看到了一些使用user_load的人的例子,似乎没有其他人遇到这个问题,这就是为什么我认为这很奇怪的原因。有什么办法吗?在这一点上加载common.inc文件安全吗?这是有道理的,Morgan和我想不出你为什么不能加载common.inc。让我知道它是否有效,我会在上面编辑我的帖子。答案很好。我也遇到了这个问题。谢谢你的回答。顺便说一句,“drupal_bootstrap(drupal_bootstrap_FULL);”是否会带来一些站点效果?在代码在hook_引导中运行之前,运行drupal_bootstrap(drupal_bootstrap_FULL)会触发hook_init。因此,如果你要触发完全引导,那么使用hook_引导是没有意义的。答案很好。我也遇到了这个问题。谢谢你的回答。顺便说一句,“drupal_bootstrap(drupal_bootstrap_FULL);”是否会带来一些站点效果?在代码在hook_引导中运行之前,运行drupal_bootstrap(drupal_bootstrap_FULL)会触发hook_init。因此,如果要触发完全引导,那么使用hook_引导没有任何意义。