Titel sagt alles.
Ich verstehe, dass entity_load ein performantes und effizientes Mittel zum Laden mehrerer Knoten bietet, während Datenbankabfragen reduziert werden. Daher gehe ich in diesem Fall davon aus, dass ich entity_load () verwenden sollte. Aber wenn ich nur einen Knoten haben möchte, welchen soll ich verwenden? Und wird node_load () in d8 zugunsten der allgemeineren entity_load () - API veraltet sein?
Ich denke, die gleiche Frage gilt auch für die vertraute user_load ().
Antworten:
node_load
ist nur ein schickes Deckblatt fürentity_load
.Das ist ein Wrapper für
node_load
Anrufe . Dies bedeutet, dass es hinsichtlich der Leistung keinen großen Unterschied gibt, welche Funktion Sie verwenden, es sei denn, Sie müssen viele Knoten laden.node_load_multiple
entity_load
node_load
hat viele Vorteile gegenüberentity_load
Alles in allem
node_load
ist dies eine Annehmlichkeit, die Sie immer verwenden sollten, wenn dies möglich ist, und innode_load_multiple
Fällen, in denen Sie viel mehr Knoten laden müssen.entity_load
sollte zum Laden von Entitäten verwendet werden, wenn Sie den Typ nicht kennen oder in einer Variablen speichern lassen. In diesem Fall können Sie dies tunquelle
node_load()
ist das, was wir gewohnt sind.Verwenden Sie node_load (), wenn Sie einen einzelnen Knoten laden möchten, und node_load_multiple (), wenn Sie mehrere haben. Verwenden Sie entity_load () direkt, wenn Sie den Entitätstyp beispielsweise nicht im Voraus kennen
entity_load($type, array($id))
.Beachten Sie, dass entity_load () einen inkonsistenten Namen hat und eigentlich entity_load_multiple () sein sollte, da dadurch mehrere Ergebnisse geladen werden können und ein Array von Ergebnissen zurückgegeben wird.
quelle
node_load()
ist die Funktion, die vor der Einführung der Entitäts-API in Drupal 7 existierte. Der Unterschiedentity_load()
besteht darin, dass sie Parameter akzeptiert, die für das Laden eines Knotenobjekts spezifisch sind, wie z$vid
. Die Funktionsaufrufenode_load_multiple()
; Dies ist aus Gründen der Kompatibilität hilfreich und erfordert weniger Parameter.In Drupal 8
node_load()
,node_load_multiple()
undentity_load()
sind veraltet. Diese werden entfernt, wenn Drupal 9 seine stabile Version haben wird.Außerdem müssen in Drupal 8 Aufrufe dieser Funktionen geändert werden, da in Drupal 8:
node_load()
wird nicht$vid
als zweiter Parameter verwendetentity_load()
undnode_load_multiple()
nicht$condition
als zweiten Parameter verwenden (und es wurde bereits in Drupal 7 als veraltet markiert)quelle