আমার কোনটি ব্যবহার করা উচিত এবং কখন: নোড_লোড () বা সত্তা_লোড ()?


24

শিরোনাম সব বলে।

আমি বুঝতে পারি যে সত্তা_লোড ডাটাবেস কোয়েরি হ্রাস করার সময় একাধিক নোড লোড করার জন্য একটি পারফরম্যান্ট এবং দক্ষ উপায় সরবরাহ করে, সুতরাং আমি মনে করি সেই পরিস্থিতিতে আমার সত্তা_লোড () ব্যবহার করা উচিত। কিন্তু যখন আমি কেবল একটি নোড চাই, আমার কোনটি ব্যবহার করা উচিত? এবং আরও জেনেরিক সত্তা_লোড () এপিআই-এর পক্ষে নোড_লোড () ডি 8 এ অবমাননিত হবে?

আমার ধারণা একই প্রশ্নটি পরিচিত ব্যবহারকারী_লোড () এর ক্ষেত্রেও যায়।


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

আপনার যখন লোড করার জন্য একক নোড থাকে এবং নোড_লোড_ মাল্টিপল () আপনার আরও থাকে তখন নোড_লোড () ব্যবহার করুন। উদাহরণস্বরূপ, যখন সত্তার প্রকারটি আগে থেকে আপনি জানেন না তখন সত্তা_ লোড () সরাসরি ব্যবহার করুন entity_load($type, array($id))

নোট করুন যে সত্তা_লোড () অসামঞ্জস্যভাবে নামকরণ করা হয়েছে, এটি প্রকৃতপক্ষে সত্তা_লোড_মুক্তি () হওয়া উচিত, কারণ এটি একাধিক ফলাফল লোড করতে দেয় এবং ফলাফলগুলির একটি অ্যারের প্রদান করে।


4

node_load()ডুপাল API এ সত্তা এপিআই প্রবর্তনের আগে বিদ্যমান ফাংশনটি হ'ল এর সাথে পার্থক্য entity_load()হ'ল এটি কোনও নোড অবজেক্ট লোড করার জন্য নির্দিষ্ট পরামিতিগুলি গ্রহণ করে যেমন $vid। ফাংশন কল node_load_multiple(); এটি সামঞ্জস্যতার কারণে সহায়ক এবং এটির জন্য কম পরামিতি প্রয়োজন।

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

ড্রুপাল 8 এ node_load(), node_load_multiple()এবং entity_load()অবমাননিত। এটি যখন ড্রুপাল 9 এর স্থিতিশীল প্রকাশ পাবে তখন এগুলি সরানো হয়)।
তদ্ব্যতীত, দ্রুপাল ৮-এ সেই ফাংশনগুলির জন্য কলগুলি পরিবর্তন করা দরকার, যেহেতু দ্রুপাল ৮:

  • node_load()$vidদ্বিতীয় প্যারামিটার হিসাবে ব্যবহার করবেন না
  • entity_load()এবং দ্বিতীয় প্যারামিটার হিসাবে node_load_multiple()ব্যবহার করবেন না $condition(এবং এটি ইতিমধ্যে দ্রুপাল 7-এ অবচয় হিসাবে চিহ্নিত হয়েছে)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.