web-gelistirme-sc.com

Hangisini ve ne zaman kullanmalıyım: node_load () veya entity_load ()?

Başlık her şeyi söylüyor.

Ben varlık_load veritabanı sorguları azaltırken birden fazla düğüm yüklemek için verimli ve verimli bir yol sağlar, bu yüzden ben kurumsal_load () kullanmalıdır varsayalım. Ama sadece bir düğüm istediğimde hangisini kullanmalıyım? Ve node_load () d8'de daha genel entity_load () api lehine kullanımdan kaldırılacak mı?

Sanırım aynı soru tanıdık user_load () için de geçerli.

25
Torrance

node_load, entity_load İçin süslü bir pakettir.

Yani node_load, node_load_multiple İçin bir sarmalayıcı olan entity_load 'I çağırır. Bu, performans açısından akıllıca bir çok fark olmadığı anlamına gelir, çok fazla düğüm yüklemeniz gerekmedikçe, kullandığınız işlev.

node_load, entity_load

  • Daha basit
  • Kod okunabilirliğini artırır
  • düğüm nesnelerine sahip bir dizi yerine düğüm nesnesini döndürür

Sonuç olarak, node_load Her zaman mümkün olduğunda kullanmanız gereken bir kolaylıktır, ardından daha fazla düğüm yüklemeniz gereken durumlar için node_load_multiple Adresine başvurunuz.

entity_load, Türü bilmediğiniz veya bir değişkende sakladığınız varlıkları yüklemek için kullanılmalıdır; bu durumda

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

Yüklemek için tek bir düğümünüz olduğunda node_load () ve bunlardan daha fazlasına sahip olduğunuzda node_load_multiple () kullanın. Varlık türünü önceden bilmediğiniz durumda doğrudan entity_load () kullanın, örneğin entity_load($type, array($id)).

Entity_load () tutarsız olarak adlandırılır, birden fazla sonuç yüklenmesine izin verdiğinden ve bir sonuç dizisi döndürdüğünden, aslında entity_load_multiple () olmalıdır.

9
Berdir

node_load() , varlık API'sı Drupal 7 içinde sunulmadan önce var olan işlevdir. entity_load() ile fark , $vid gibi bir düğüm nesnesinin yüklenmesi için özel parametreleri kabul etmesidir. İşlev çağırır node_load_multiple() ; uyumluluk nedeni için yararlıdır ve daha az parametre gerektirdiğinden.

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

Drupal 8, node_load(), node_load_multiple() ve entity_load() kullanımdan kaldırıldı. Drupal = 9 kararlı salımına sahip olacaktır).
Ayrıca, Drupal Bu işlevlere yapılan 8 aramanın değiştirilmesi gerekir, çünkü Drupal 8:

5
kiamlaluno