Drupal:如何在一个模块函数中定义变量,并在Drupal 7中从另一个模块函数中调用它

时间:2011-07-11 16:08:07

标签: drupal-7 drupal-modules

我为Drupal 7编写了一个模块。它必须在一个函数中获得当前的$node变量,例如hook_init()或类似的,此变量应该可以从另一个函数访问。我找到了关于node_load(arg(1))的讨论,解决方案的作者说,由于缓存,性能不受关注。

那么,我是否应该在每个函数中调用node_load()我不必担心性能问题是否有其他方法在模块函数之间传递变量?

更确切地说:我已经在具有某些节点类型的页面上放置了带模块的块,并且在hook_block_view函数中我需要访问当前节点对象。到目前为止,我成功使用了node_load。但也许有更好的方法。

提前致谢!

1 个答案:

答案 0 :(得分:0)

在drupal 7 node_load()调用entity_load(),它会缓存结果,因此如果您调用node_load()两次,它将从缓存中返回。

使用node_load()比在模块之间传递全局变量更好,特别是如果您使用某些第三方缓存模块(APC,memcached或其他)。如果您关心性能,请尝试使用其中一个模块(我更喜欢memcached)。