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 apakah node_load () tidak digunakan lagi dalam d8 untuk mendukung entitas_load () api yang lebih umum?
Saya kira pertanyaan yang sama juga berlaku untuk user_load ().
Jawaban:
node_load
hanya pembungkus mewah untukentity_load
.Itu adalah
node_load
panggilannode_load_multiple
yang merupakan pembungkus untukentity_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 kelebihan dibandingentity_load
Jadi, pada dasarnya,
node_load
adalah kenyamanan yang harus selalu Anda gunakan kapan pun memungkinkan, kemudian gunakannode_load_multiple
untuk kasus-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 melakukannyasumber
node_load()
adalah apa yang biasa kita lakukan.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.
sumber
node_load()
adalah fungsi yang ada sebelum entitas API diperkenalkan di Drupal 7. Perbedaannyaentity_load()
adalah bahwa ia menerima parameter yang spesifik untuk memuat objek node, seperti$vid
. Fungsi panggilannode_load_multiple()
; itu membantu untuk alasan kompatibilitas, dan karena itu memerlukan lebih sedikit parameter.Dalam Drupal 8
node_load()
,,node_load_multiple()
danentity_load()
sudah usang. Ini mereka dihapus ketika Drupal 9 akan memiliki rilis stabil).Selanjutnya, dalam Drupal 8 panggilan ke fungsi-fungsi tersebut perlu diubah, karena dalam Drupal 8:
node_load()
tidak digunakan$vid
sebagai parameter keduaentity_load()
dannode_load_multiple()
jangan gunakan$condition
sebagai parameter kedua (dan sudah ditandai sebagai sudah usang di Drupal 7)sumber