Drupal: Как определить переменные в одном модуле и вызвать их из другого в Drupal 7 - PullRequest
1 голос
/ 11 июля 2011

Я пишу модуль для Drupal 7. Он должен получить текущую переменную $node в одной функции, например, hook_init() или подобную, и эта переменная должна быть доступна из другой функции.Я нашел обсуждение о node_load(arg(1)), и автор решения сказал, что производительность не имеет значения из-за кэширования.

Итак, должен ли я вызывать node_load() в каждой функции, которой мне не нужно бояться проблем с производительностью, или есть ли другие способы передачи переменных между функциями модуля?Я разместил блок с модулем на страницах с определенными типами узлов, и в функции hook_block_view мне нужен доступ к объекту текущего узла.Мне удалось использовать node_load.Но, может быть, есть лучший способ.

Заранее спасибо!

1 Ответ

0 голосов
/ 17 июля 2011

В drupal 7 node_load() вызывает entity_load(), что кэширует результаты, поэтому, если вы вызовете node_load() дважды, он будет возвращен из кэша.

Использование node_load() является лучшим решением, чем передачаглобальные переменные между модулями, особенно если вы используете сторонние модули кэширования (APC, memcached или другие).Если вы заботитесь о производительности, попробуйте использовать один из этих модулей (я предпочитаю memcached).

...