সত্তা_মেটাডেটা_রাপর () ফাংশনটির উদ্দেশ্য কী এবং আমি কেন এটি ব্যবহার করব?


23

আমি এই মুহুর্তে সত্তা এপিআই ব্যবহার করে এমন অনেকগুলি মডিউলগুলিতে অ্যাড-অনগুলি বিকাশ করে দেখছি এবং entity_metadata_wrapper()ফাংশনটি পপিং আপ করে চলেছে ।

ডক্স পৃষ্ঠা এটি সম্পর্কে এই বলে:

প্রদত্ত ডেটার জন্য একটি সম্পত্তি মোড়ক ফেরত দেয়।

যদি কোনও সত্তা মোড়ানো থাকে তবে র‌্যাপারটি এনটাইটেলাইটির বৈশিষ্ট্যগুলির জন্য আরও মোড়কগুলি পুনরুদ্ধার করতে ব্যবহার করা যেতে পারে।

সেখানে 'সত্তা' শব্দের বিস্ময়করভাবে ফ্রেইডিয়ান বানান উপেক্ষা করে, এই মোড়ানোগুলির উদ্দেশ্য কী তা আমি সত্যিই বুঝতে পারি না।

আমি বুঝতে পারি যে ফাংশনটি মূলত একটি EntityDrupalWrapperশ্রেণি ফেরায়:

মোড়ক সত্তা বৈশিষ্ট্যের গেটর এবং সেটার কলব্যাকগুলি প্রয়োগ করতে সহজ করে

তবে আমি যা বুঝতে পারি না তা এটি কীভাবে জিনিসগুলিকে সহজ করে তোলে।

উদাহরণস্বরূপ, কোনও নোডের স্থিতি সম্পত্তি আপডেট করতে আমি এই কোডটি ব্যবহার করতে পারি:

$node = node_load($nid);
$node->status = 1;
node_save($node);

এটা বেশ পরিষ্কার। যেহেতু আমি এটি বুঝতে পারি (তবে ভুল হতে পারে) ব্যবহার করে সমমানের কোডটি এর entity_metadata_wrapper()চেয়ে আরও ভার্বোস হবে।

আমি নিশ্চিত নই যে এটি কেবল 'র‍্যাপার' শব্দটির ব্যবহার যা আমাকে এখানে ট্রিপ করে চলেছে, তবে আমি সত্তা মডিউলটিতেও কোডটি দেখেছি এবং এটি বুঝতে আমার খুব কাছে নেই।

এই ফাংশনটি ব্যবহার করে কী কী সুবিধা হবে তা কি কেউ ব্যাখ্যা করতে সক্ষম হন এবং সাধারণ ব্যবহারের ক্ষেত্রে সম্ভবত একটি সাধারণ কোড উদাহরণ সরবরাহ করতে পারেন?


এটি সত্তা এপিআই এবং মোড়কে আরও গভীর বোঝাপড়া যুক্ত করতে পারে। এটি ফাগোর একটি কথা, সত্তা লোক। wolfgangziegler.net/drupalcon-denver
কেন

ধন্যবাদ, এটি উদ্বোধনী গাম্বিট থেকে সত্যিই দরকারী বলে মনে হচ্ছে। কিছুটা সময়
ক্লাইভ

সেই "ভিডিওটি ব্লিপ থেকে সরানো হয়েছে" তবে স্লাইডগুলি এখনও ডাউনলোড হয়।
আর্টফুলবোট

উত্তর:


23

হ্যাঁ, নোডের স্থিতি পরিবর্তন করা তুচ্ছ, কারণ এটি একটি হার্ডকোডযুক্ত সম্পত্তি।

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

দুটি উদাহরণ, এটি দেখায় যে সত্তা মোড়ক কি করতে পারে:

  • নিম্নলিখিত উত্তরটি আদেশের সাথে বাণিজ্য লাইন আইটেম যুক্ত করে, ভাষা এবং আসল সম্পত্তি যা রেফারেন্স আইডি ধারণ করে তার যত্ন নেওয়া, নিম্নলিখিত উত্তর থেকে নেওয়া /drupal//a/23513/31

    $order_wrapper->commerce_line_items[] = $line_item;
  • একইভাবে, ভাষা বা ব-দ্বীপটি যাচাই না করেই কোনও ক্ষেত্রের কোনও মূল্য প্রত্যক্ষভাবে অ্যাক্সেস করতে সক্ষম হওয়া, এমনকি /drupal//a/ থেকে নেওয়া রেফারেন্সযুক্ত সত্তাগুলি সরাসরি অ্যাক্সেস করতে সক্ষম হওয়া 33010/31

    $subnode = entity_metadata_wrapper('node', $node)->field_subnode->value();
    $default = $subnode->title;

সত্তা র‌্যাপার হ'ল সন্ধান এপিআই এবং বিধিগুলির মতো নমনীয়, শক্তিশালী মডিউলগুলির পেছনের চালিকা শক্তি যা এটি তাদের একাধিক স্তরের রেফারেন্সের মাধ্যমে তাদের কাজ করতে দেয়, যাতে আপনি উদাহরণস্বরূপ কোনও ব্যবহারকারীর কোনও ক্রয়ের সাথে ক্রয় করা পণ্যটির ক্ষেত্রে অ্যাক্সেস করতে পারেন can [commerce-order:commerce-line-items:0:commerce-product:some-field]( যেমন আসলে সঠিক নাও হতে পারে তবে এর মতো কিছু), বা আপনার অনুসন্ধানের সূচকে রেফারেন্সযুক্ত নোডের বডি সারাংশ যুক্ত করুন।

এটি বলেছিল, আমি আবশ্যকভাবে মোড়কের আসল এপিআই পছন্দ করি না, এটি বিশাল অভ্যন্তরীণ অ্যারে এবং এমনকি সাধারণ বৈশিষ্ট্যগুলি আবার মোড়কের ক্লাস। আমি আশা করি যে ড্রুপাল 8-তে উন্নত সত্তা (এবং আশাক্রমে ফিল্ড) সিস্টেম শ্রেণিবদ্ধ সত্তা থাকার কারণে এই জাতীয় একটি মোড়কের জন্য প্রয়োজনীয়তা সরিয়ে ফেলবে।


উজ্জ্বল, আমি জানতাম আমি এই দিয়ে কিছু মিস করেছি। আমি মনে করি এটি EntityDrupalWrapperবিভ্রান্তির কারণ হিসাবে বর্ণনা করেছিল; যখন এটি 'বৈশিষ্ট্যগুলি' উল্লেখ করেছে আমি বুঝতে পারি নি যে ক্ষেত্রগুলি একেবারেই জড়িত ছিল, আমি কেবল ভেবেছিলাম এটির আক্ষরিক অর্থ শ্রেণীর সম্পত্তিগুলির যত্ন নেওয়া (নিড, স্ট্যাটাস ইত্যাদি)। ক্লিয়ারিংয়ের জন্য ধন্যবাদ, জেনে রাখা যে নিয়ম মডিউলটি এটি ডেটা সিলেক্টারের জন্য ব্যবহার করে তা অনেক বেশি অর্থবোধ করে তোলে
ক্লাইভ

@ বার্দির "আমি আবশ্যকভাবে র‌্যাপারের আসল এপিআই পছন্দ করি না ..." আপনার মত আমারও একই অনুভূতি আছে have আপনি কি এই লড়াইয়ের জন্য কিছু করেন? আপনি মানগুলি দেখতে ফিল্ড_ভিউ_ভ্যালু () ব্যবহার করেন? আপনি কাস্টম ওয়ার্কফ্লো বা ড্যাশবোর্ডের জন্য কাস্টম কলব্যাকগুলিতে মান নির্ধারণের প্রস্তাব করবেন কীভাবে?
চার্লি শ্লিয়েসার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.