O título diz tudo.
Entendo que o entity_load fornece um meio eficiente e eficiente para carregar vários nós e ao mesmo tempo reduzir as consultas ao banco de dados, portanto presumo que, nesse caso, eu deveria usar o entity_load (). Mas quando eu apenas quero um nó, qual devo usar? E o node_load () será descontinuado no d8 em favor da API entity_load () mais genérica?
Eu acho que a mesma pergunta vale para o familiar user_load () também.
Respostas:
node_load
é apenas um invólucro chique paraentity_load
.Ou seja,
node_load
chamadasnode_load_multiple
que são um invólucroentity_load
. Isso significa que, em termos de desempenho, não há muita diferença, qual função você usa, a menos que você precise carregar muitos nós.node_load
tem muitas vantagens sobreentity_load
Portanto,
node_load
é uma conveniência que você sempre deve usar sempre que possível e, em seguida, recorra anode_load_multiple
casos em que você precisa carregar muito mais nós.entity_load
deve ser usado para carregar entidades quando você não conhece o tipo ou o armazena em uma variável; nesse caso, você pode fazerfonte
node_load()
é o que estamos acostumados.Use node_load () quando tiver um único nó para carregar e node_load_multiple () quando tiver mais deles. Use entity_load () diretamente quando não souber o tipo de entidade com antecedência, por exemplo
entity_load($type, array($id))
.Observe que entity_load () é nomeado de forma inconsistente; na verdade, deve ser entity_load_multiple (), pois permite carregar vários resultados e retorna uma matriz de resultados.
fonte
node_load()
é a função que existia antes da API da entidade ser introduzida no Drupal 7. A diferençaentity_load()
é que ela aceita parâmetros específicos para o carregamento de um objeto de nó, como$vid
. A função chamanode_load_multiple()
; é útil por motivos de compatibilidade e porque requer menos parâmetros.Em Drupal 8,
node_load()
,node_load_multiple()
eentity_load()
são preteridos. Eles são removidos quando o Drupal 9 tiver seu lançamento estável).Além disso, no Drupal 8, as chamadas para essas funções precisam ser alteradas, pois no Drupal 8:
node_load()
não usa$vid
como segundo parâmetroentity_load()
enode_load_multiple()
não use$condition
como segundo parâmetro (e já foi marcado como obsoleto no Drupal 7)fonte