El título lo dice todo.
Entiendo que entity_load proporciona un medio eficiente y eficiente para cargar múltiples nodos al tiempo que reduce las consultas de la base de datos, por lo que supongo que en ese caso debería estar usando entity_load (). Pero cuando solo quiero un nodo, ¿qué debo usar? ¿Y node_load () quedará en desuso en d8 a favor de la API más genérica entity_load ()?
Supongo que la misma pregunta se aplica también a la familiar user_load ().
Respuestas:
node_load
es solo un envoltorio elegante paraentity_load
.Eso es
node_load
llamadas,node_load_multiple
que es un contenedor paraentity_load
. Esto significa que, en cuanto al rendimiento, no hay mucha diferencia, qué función utiliza, a menos que tenga que cargar muchos nodos.node_load
tiene muchas ventajas sobreentity_load
En resumen,
node_load
es una conveniencia que siempre debe usar siempre que sea posible, y luego recurrir a losnode_load_multiple
casos en los que necesite cargar muchos más nodos.entity_load
debe usarse para cargar entidades cuando no conoce el tipo, o lo tiene almacenado en una variable, en cuyo caso puede hacerlofuente
node_load()
es a lo que estamos acostumbrados.Use node_load () cuando tenga un solo nodo para cargar y node_load_multiple () cuando tenga más de ellos. Use entity_load () directamente cuando no conozca el tipo de entidad de antemano, por ejemplo
entity_load($type, array($id))
.Tenga en cuenta que entity_load () tiene un nombre inconsistente, en realidad debería ser entity_load_multiple (), ya que permite cargar múltiples resultados y devuelve una matriz de resultados.
fuente
node_load()
es la función que existía antes de que la entidad API se introdujera en Drupal 7. La diferencia conentity_load()
es que acepta parámetros que son específicos para cargar un objeto de nodo, como$vid
. La función llamanode_load_multiple()
; es útil por razones de compatibilidad y porque requiere menos parámetros.En Drupal 8
node_load()
,node_load_multiple()
yentity_load()
están en desuso. Esto se eliminan cuando Drupal 9 tendrá su versión estable).Además, en Drupal 8 las llamadas a esas funciones deben cambiarse, ya que en Drupal 8:
node_load()
no usa$vid
como segundo parámetroentity_load()
ynode_load_multiple()
no usar$condition
como segundo parámetro (y ya estaba marcado como obsoleto en Drupal 7)fuente