আমি খুঁজে পেয়েছি যে ড্রুপাল 8 এর সাথে কাজ করার ক্ষেত্রে সবচেয়ে বড় সমস্যাটি হ'ল আমি যা প্রয়োজন তার ডেটা পেতে পারি না। ড্রুপাল 8 চায় যে আমি কোনও বস্তুর মাধ্যমে ম্যানুয়ালি ড্রিলিংয়ের চেয়ে পাবলিক পদ্ধতিগুলি ব্যবহার করব। সমস্যাটি হচ্ছে, উপলভ্য পদ্ধতির তালিকা পাওয়ার জন্য আমি একটি সুসংগত উপায় বের করতে পারি না! (এগুলি যাদুকরিরূপে বিদ্যমান এবং আমার মনে হয় আমি কেবল তাদের সম্পর্কে জানার কথা) =
এই উদাহরণের জন্য, আসুন আমি বলি যে আমার কাছে একটি ভিডিও ক্ষেত্রের সাথে একটি সামগ্রীর ধরণ রয়েছে। আমাকে সেই ক্ষেত্রে ভিডিও ফাইলের কাঁচা ইউআরএল পেতে হবে।
সুতরাং আমি একটি নোড আইডি দিয়ে শুরু করব (id nid), এবং কোনওভাবে আমাকে নোডটি কীভাবে লোড করতে হবে তা নির্ধারণ করতে হবে। এটি খুব খারাপ নয় কারণ প্রচুর উদাহরণ রয়েছে। তাই আমি এরকম কিছু করি $node = \Drupal\node\Entity\Node::load($nid);
।
এ পর্যন্ত সব ঠিকই. তারপরে আমার ভিডিও ক্ষেত্রের মান (ফিল্ড_মাইন_ভিডিও) পাওয়া দরকার। এটি নির্ণয় করতে আমাকে আরও সময় লাগল কারণ 'জালের চারপাশে বিবাদী ডকুমেন্টেশন রয়েছে। অবশেষে আমি বুঝতে পারলাম আমাকে এরকম কিছু করতে হবে (কারণ এটি একটি মাল্টিভ্যালু আইটেম):
$video = \Drupal\node\Entity\Node::load($nid)->field_main_video->getValue();
... তারপরে অ্যারে থেকে লুপ করুন। কিন্ত ব্যবহার করা আমাকে এটির সন্ধান করতেও সহায়তা করেনি। কারণ, উদাহরণস্বরূপ, যদি আমি kint($node)
এবং পদ্ধতির অধীনে নজর রাখি তবে আমি getValue () কে সেখানে কোনও আইটেম হিসাবে দেখছি না। এখনও ভয়ানক নয়, কারণ এটি বের করার জন্য চারপাশে পর্যাপ্ত উদাহরণ ছিল।
যদিও আমি আরও গভীরতর হই, তবে আমি যা জানতাম না (এটি গুরুত্বপূর্ণ অংশ) তা হ'ল ভিডিও ফিল্ড সত্তা আইডি পাওয়ার চেয়ে সত্তাটি লোড করা, তারপরে সত্তায় "ইউরি" ক্ষেত্র সন্ধান করা ইত্যাদি (যেমন আমি ডি 7 এ যাব): একটি পদ্ধতি ছিল যা আমাকে একই কোডের এই লাইনে ইউআরআই পেতে দেয়!
$url = \Drupal\node\Entity\Node::load($nid)->field_main_video->entity->getFileUri();
তবে কীভাবে আমি এই getFileUri () এর অস্তিত্ব জানতে পারতাম? আমি এটি একটি ব্লগ পোস্টে হোঁচট খেতে ঘটেছে। এটি সত্যই ডি 7 এর চেয়ে বেশি ইউআরআই পাওয়া সহজ করে তোলে ... তবে কেবলমাত্র যদি আপনি জানেন (যাদুতে) কোনও অবজেক্টের প্রতিটি 'স্তরের' জন্য কোন পদ্ধতি বিদ্যমান exist
শেষ পর্যন্ত, এই উদাহরণটি সহ আমি জিজ্ঞাসা করছি: আপনি কীভাবে কোনও সামগ্রীর প্রতিটি স্তরের জন্য সমস্ত পাবলিক পদ্ধতিগুলি এমনভাবে পড়তে এবং বুঝতে সহজ হন? মনে রাখবেন যে এপিআই.ড্রপাল.আরোগুলি নিজেই অনুসন্ধান বা আইডিই নির্দিষ্ট কিছু ব্যবহার না করে একটি ড্রুপাল কেন্দ্রিক (অর্থাত্ ডিভেল মডিউল) এর উপায় থাকা উচিত?