Название говорит обо всем.
Я понимаю, что entity_load предоставляет эффективные и эффективные средства для загрузки нескольких узлов при одновременном сокращении запросов к базе данных, поэтому я предполагаю, что в этом случае мне следует использовать entity_load (). Но когда я просто хочу один узел, который я должен использовать? И будет ли в d8 функция node_load () устарела в пользу более общего API-интерфейса entity_load ()?
Я думаю, тот же вопрос касается и знакомой user_load ().
Ответы:
node_load
это просто модная обертка дляentity_load
.Это
node_load
звонки,node_load_multiple
которые являются оберткой дляentity_load
. Это означает, что с точки зрения производительности нет особой разницы, какую функцию вы используете, если вам не нужно загружать много узлов.node_load
имеет много преимуществ передentity_load
В общем,
node_load
удобство, которое вы всегда должны использовать, когда это возможно, а затем прибегать кnode_load_multiple
случаям, когда вам нужно загрузить гораздо больше узлов.entity_load
следует использовать для загрузки сущностей, когда вы не знаете тип или храните его в переменной, и в этом случае вы можете сделатьисточник
node_load()
это то, к чему мы привыкли.Используйте node_load (), когда у вас есть один узел для загрузки, и node_load_multiple (), когда у вас их больше. Например, используйте entity_load (), если вы заранее не знаете тип объекта
entity_load($type, array($id))
.Обратите внимание, что entity_load () имеет непоследовательное имя, на самом деле это должен быть entity_load_multiple (), так как он позволяет загружать несколько результатов и возвращает массив результатов.
источник
node_load()
является функцией, существовавшей до того, как API-интерфейс сущностей был представлен в Drupal 7. Разница вentity_load()
том, что он принимает параметры, специфичные для загрузки объекта узла, такие как$vid
. Вызовы функцийnode_load_multiple()
; это полезно по причине совместимости и потому, что требует меньше параметров.В Drupal 8
node_load()
,node_load_multiple()
иentity_load()
являются устаревшими. Это они удаляются, когда Drupal 9 будет иметь стабильную версию).Кроме того, в Drupal 8 вызовы этих функций должны быть изменены, поскольку в Drupal 8:
node_load()
не использует в$vid
качестве второго параметраentity_load()
иnode_load_multiple()
не используйте в$condition
качестве второго параметра (и он был помечен как устаревший уже в Drupal 7)источник