Le titre dit tout.
Je comprends que entity_load fournit un moyen performant et efficace pour charger plusieurs nœuds tout en réduisant les requêtes de base de données, donc je suppose que dans ce cas, je devrais utiliser entity_load (). Mais quand je veux juste un nœud, lequel dois-je utiliser? Et node_load () sera-t-il déconseillé en d8 au profit de l'api entity_load () plus générique?
Je suppose que la même question vaut aussi pour le familier user_load ().
Réponses:
node_load
est juste un emballage de fantaisie pourentity_load
.C'est des
node_load
appelsnode_load_multiple
qui sont un wrapper pourentity_load
. Cela signifie qu'en termes de performances, il n'y a pas vraiment de différence, quelle fonction vous utilisez, sauf si vous devez charger un grand nombre de nœuds.node_load
a de nombreux avantages surentity_load
Donc, dans l'ensemble,
node_load
c'est une commodité que vous devez toujours utiliser dans la mesure du possible, puis recourir auxnode_load_multiple
cas où vous devez charger beaucoup plus de nœuds.entity_load
doit être utilisé pour charger des entités lorsque vous ne connaissez pas le type, ou le faire stocker dans une variable, auquel cas vous pouvez le fairela source
node_load()
c'est ce à quoi nous sommes habitués.Utilisez node_load () lorsque vous avez un seul nœud à charger et node_load_multiple () lorsque vous en avez plusieurs. Utilisez entity_load () directement lorsque vous ne connaissez pas le type d'entité à l'avance, par exemple
entity_load($type, array($id))
.Notez que entity_load () est nommé de manière incohérente, il devrait en fait être entity_load_multiple (), car il permet de charger plusieurs résultats et renvoie un tableau de résultats.
la source
node_load()
est la fonction qui existait avant l'introduction de l'API d'entité dans Drupal 7. La différence avecentity_load()
est qu'elle accepte des paramètres spécifiques au chargement d'un objet nœud, tels que$vid
. La fonction appellenode_load_multiple()
; il est utile pour des raisons de compatibilité et parce qu'il nécessite moins de paramètres.Dans Drupal 8,
node_load()
,node_load_multiple()
etentity_load()
sont dépréciées. Ils sont supprimés lorsque Drupal 9 aura sa version stable).De plus, dans Drupal 8, les appels à ces fonctions doivent être modifiés, car dans Drupal 8:
node_load()
n'utilise pas$vid
comme deuxième paramètreentity_load()
etnode_load_multiple()
ne pas utiliser$condition
comme deuxième paramètre (et il a déjà été marqué comme obsolète dans Drupal 7)la source