it-swarm-eu.dev

Které mám použít a kdy: node_load () nebo entity_load ()?

Název říká vše.

Chápu, že entity_load poskytuje výkonný a účinný prostředek k načtení více uzlů a zároveň snižuje dotazy na databázi, takže v této instanci předpokládám, že bych měl používat entity_load (). Ale když chci jen jeden uzel, co bych měl použít? A bude node_load () v d8 zastarán ve prospěch obecnějšího api entity entity_load ()?

Myslím, že stejná otázka platí i pro známé user_load ().

24
Torrance

node_load je jen ozdobný obal pro entity_load.

To je node_load volá node_load_multiple což je obálka pro entity_load. To znamená, že výkon není moudrý, ve které funkci používáte, pokud nemusíte načítat mnoho uzlů.

node_load má mnoho výhod oproti entity_load

  • Je to jednodušší
  • Zvyšuje čitelnost kódu
  • vrací objekt uzlu namísto pole s uzlovými objekty

Takže ve všech, node_load je pohodlí, které byste měli vždy používat, kdykoli je to možné, pak se uchýlit k node_load_multiple pro případy, kdy potřebujete načíst mnohem více uzlů.

entity_load by se mělo použít pro načítání entit, když neznáte typ nebo jej necháte uložený v proměnné. V takovém případě můžete

entity_load($type, ...);
32
googletorp

Použijte node_load (), pokud máte jeden uzel, který chcete načíst, a node_load_multiple (), pokud jich máte více. Použijte entity_load () přímo, pokud neznáte typ entity předem, například entity_load($type, array($id)).

Všimněte si, že entity_load () je nekonzistentně pojmenována, měla by být ve skutečnosti entity_load_multiple (), protože umožňuje načíst více výsledků a vrací řadu výsledků.

9
Berdir

node_load() je funkce, která existovala před zavedením entity API v Drupal 7. Rozdíl s entity_load()) je to, že přijímá parametry specifické pro načítání objektu uzlu, například $vid. Funkce volá node_load_multiple() ; je to užitečné z důvodu kompatibility a protože vyžaduje méně parametrů.

$node = node_load($nid);
$nodes = entity_load('node', array($nid));

V Drupal 8, node_load(), node_load_multiple() a entity_load() jsou zastaralé. Tyto budou odstraněny, když Drupal = 9 bude mít stabilní vydání).
Dále, v Drupal 8 volání na tyto funkce je třeba změnit, protože v Drupal 8:

4
kiamlaluno