मुझे कौन सा उपयोग करना चाहिए और कब: नोड_लोड () या एंट्री_लोड ()?


24

शीर्षक यह सब कहता है।

मैं समझता हूं कि Unit_load डेटाबेस प्रश्नों को कम करने के दौरान कई नोड्स को लोड करने के लिए एक प्रदर्शनशील और कुशल साधन प्रदान करता है, इसलिए मैं उस उदाहरण में मानता हूं कि मुझे Unit_load () का उपयोग करना चाहिए। लेकिन जब मुझे सिर्फ एक नोड चाहिए, जो मुझे उपयोग करना चाहिए? और नोड_ लोड () को अधिक सामान्य निकाय_ लोड () एपी के पक्ष में डी 8 में पदावनत किया जाएगा?

मुझे लगता है कि एक ही सवाल परिचित user_load () के लिए भी जाता है।


3
उह ... कोड को थोड़ा पहले पढ़ना चाहिए था। नोड_लोड केवल एक रैपर है जिसमें नोड_लोड_मूल्ट के लिए कुछ तर्क जांचे जाते हैं, जो स्वयं एंटवर्प लोड के लिए एक आवरण है। तो प्रदर्शन के लिए अलग-अलग नहीं होगा, केवल इकाई_ लोड () को छोड़कर आप सीधे अपने आप को कुछ अतिरिक्त फ़ंक्शन कॉल कर सकते हैं। Api.drupal.org/api/drupal/modules--node--node.module/function/… और api.drupal.org/api/drupal/modules--node--node.module/function/… देखें ।
टॉरेंस

जवाबों:


32

node_loadके लिए सिर्फ एक फैंसी रैपर है entity_load

वह node_loadकॉल है node_load_multipleजिसके लिए एक आवरण है entity_load। इसका मतलब है कि प्रदर्शन के लिहाज से वास्तव में बहुत अंतर नहीं है, जो आप उपयोग करते हैं, जब तक कि आपको बहुत सारे नोड्स को लोड नहीं करना पड़ता।

node_load कई फायदे हैं entity_load

  • यह सरल है
  • यह कोड पठनीयता बढ़ाता है
  • यह नोड ऑब्जेक्ट के साथ नोड ऑब्जेक्ट के बजाय नोड ऑब्जेक्ट लौटाता है

तो सभी में, node_loadएक सुविधा है जिसे आपको हमेशा जब भी संभव हो उपयोग करना चाहिए, फिर node_load_multipleउन मामलों का सहारा लें जहां आपको कई और नोड्स लोड करने की आवश्यकता होती है।

entity_load लोडिंग संस्थाओं के लिए उपयोग किया जाना चाहिए, जब आप प्रकार नहीं जानते हैं, या इसे एक चर में संग्रहीत किया गया है, जिस स्थिति में आप कर सकते हैं

entity_load($type, ...);

1
आखिरकार node_load()हम क्या करने के आदी हैं।
शिवाजी

9

जब आपके पास लोड करने के लिए एक नोड है और आपके पास अधिक होने पर नोड_लोड_मूल्ट () करने के लिए नोड_लोड () का उपयोग करें। उदाहरण के लिए, जब आप इकाई के प्रकार को पहले से नहीं जानते हैं, तब सीधे Unit_load () का उपयोग करें entity_load($type, array($id))

ध्यान दें कि Unit_load () असंगत रूप से नामित है, यह वास्तव में Unit_load_multiple () होना चाहिए, क्योंकि यह कई परिणामों को लोड करने और परिणामों की एक सरणी वापस करने की अनुमति देता है।


4

node_load()वह फ़ंक्शन है जो इकाई API से पहले Drupal 7 में पेश किया गया था। इसके साथ अंतर entity_load()यह है कि यह उन मापदंडों को स्वीकार करता है जो नोड ऑब्जेक्ट लोड करने के लिए विशिष्ट हैं, जैसे $vid। फ़ंक्शन कॉल करता है node_load_multiple(); यह संगतता कारण के लिए सहायक है, और क्योंकि इसमें कम मापदंडों की आवश्यकता होती है।

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

Drupal 8 में node_load(), node_load_multiple()और entity_load()पदावनत हैं। इसे हटा दिया जाता है जब Drupal 9 की इसकी स्थिर रिलीज होगी)।
इसके अलावा, Drupal 8 में उन कार्यों को कॉल करने की आवश्यकता है, जिन्हें Drupal 8 में किया गया है:

  • node_load()$vidदूसरे पैरामीटर के रूप में उपयोग नहीं करता है
  • entity_load()और दूसरे पैरामीटर के रूप में node_load_multiple()उपयोग नहीं करते हैं $condition(और इसे ड्रुपल 7 में पहले से ही चिह्नित के रूप में चिह्नित किया गया था)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.