it-swarm-id.com

Mana yang harus saya gunakan dan kapan: node_load () atau entity_load ()?

Judul mengatakan itu semua.

Saya mengerti bahwa entity_load menyediakan cara yang berkinerja dan efisien untuk memuat beberapa node sekaligus mengurangi permintaan basis data, jadi saya berasumsi bahwa saya harus menggunakan entity_load (). Tetapi ketika saya hanya ingin satu simpul, yang mana yang harus saya gunakan? Dan akankah node_load () ditinggalkan dalam d8 untuk mendukung entitas_load () api yang lebih umum?

Saya kira pertanyaan yang sama juga berlaku untuk user_load ().

25
Torrance

node_load hanya pembungkus mewah untuk entity_load.

Itu adalah node_load panggilan node_load_multiple yang merupakan pembungkus untuk entity_load. Ini berarti bahwa kinerja bijaksana tidak ada banyak perbedaan, yang berfungsi Anda gunakan, kecuali jika Anda harus memuat banyak node.

node_load memiliki banyak keunggulan dibandingkan entity_load

  • Lebih sederhana
  • Ini meningkatkan pembacaan kode
  • itu mengembalikan objek node bukan array dengan objek node (s)

Jadi dalam semua, node_load adalah kenyamanan yang Anda harus selalu menggunakan kapan pun memungkinkan, kemudian beralih ke node_load_multiple untuk kasus di mana Anda perlu memuat lebih banyak node.

entity_load harus digunakan untuk memuat entitas ketika Anda tidak tahu jenisnya, atau menyimpannya dalam variabel, dalam hal ini Anda dapat melakukan

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

Gunakan node_load () ketika Anda memiliki satu node untuk memuat dan node_load_multiple () ketika Anda memiliki lebih dari mereka. Gunakan entitas_load () secara langsung ketika Anda tidak tahu jenis entitas sebelumnya, misalnya entity_load($type, array($id)).

Perhatikan bahwa entity_load () dinamai secara tidak konsisten, itu seharusnya benar-benar entity_load_multiple (), karena memungkinkan untuk memuat beberapa hasil dan mengembalikan array hasil.

9
Berdir

node_load() adalah fungsi yang ada sebelum API entitas diperkenalkan di Drupal 7. Bedanya dengan entity_load() adalah ia menerima parameter yang spesifik untuk memuat objek simpul, seperti $vid. Fungsi ini memanggil node_load_multiple() ; akan sangat membantu untuk alasan kompatibilitas, dan karena itu memerlukan lebih sedikit parameter.

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

Dalam Drupal 8, node_load(), node_load_multiple() dan entity_load() ditinggalkan, ini akan dihapus ketika Drupal 9 akan memiliki rilis stabilnya).
Selanjutnya, dalam Drupal 8 panggilan ke fungsi-fungsi tersebut perlu diubah, karena dalam Drupal 8:

5
kiamlaluno