উপস্থাপনা-বিমূর্ততা-নিয়ন্ত্রণ এবং ড্রুপাল কোর ব্যবহার করা হয় এমন অন্যান্য নিদর্শনগুলি ছাড়াও , ভিউস, সিসিके এবং বৈশিষ্ট্যগুলির মতো আরও জনপ্রিয় অবদানকারী মডিউলগুলিতে কী অন্য ডিজাইনের নিদর্শনগুলি বিশিষ্টভাবে ব্যবহৃত হয় ?
উপস্থাপনা-বিমূর্ততা-নিয়ন্ত্রণ এবং ড্রুপাল কোর ব্যবহার করা হয় এমন অন্যান্য নিদর্শনগুলি ছাড়াও , ভিউস, সিসিके এবং বৈশিষ্ট্যগুলির মতো আরও জনপ্রিয় অবদানকারী মডিউলগুলিতে কী অন্য ডিজাইনের নিদর্শনগুলি বিশিষ্টভাবে ব্যবহৃত হয় ?
উত্তর:
আরম্ভের জন্য এক জায়গা হ'ল মূলটি এবং অবদানের জন্য প্রকাশিত নিদর্শনগুলি। - ল্যারি গারফিল্ডের একটি দুর্দান্ত রচনা আপ (ক্রেল) একটি দ্রুপাল ওয়াচডগ নিবন্ধে পাওয়া যাবে ।
পর্যবেক্ষক, দর্শক এবং উঁকি দেওয়া টমস
দ্রুপাল আসলে পর্যবেক্ষক এবং দর্শনার্থীর দ্বৈত নিদর্শনগুলিতে নির্মিত, যদিও এটি তাদের নামে ডাকে না। পরিবর্তে, এটি তাদের হুকস বলে।
hook_node_load()
,hook_user_login()
এবং আরও কিছুটা বলতে গেলে নোড এবং ব্যবহারকারীদের পর্যবেক্ষণ করা হয়।hook_form_alter()
,hook_node_view()
এবং আরও অনেকগুলি সংক্ষেপে, দর্শনার্থী। যেহেতু দ্রুপাল উভয়ের মধ্যে পার্থক্য করে না, কিছু হুক যুক্তিযুক্তভাবে উভয় প্যাটার্ন হিসাবে বিবেচিত হতে পারে তবে নীতিটি একই।কারখানা এবং আদেশ
কারখানার প্যাটার্নে বিভিন্ন প্রকারের বৈচিত্র রয়েছে, তবে তারা সকলেই একই ধারণাটিতে ফোটে: একটি অবজেক্ট, ক্লায়েন্ট অন্য যুক্তি, কারখানাকে যুক্তিযুক্ত টুকরোটির যথাযথ প্রয়োগের জন্য জিজ্ঞাসা করে, তবে এটি কোনটি যত্ন করে না । এটি সিদ্ধান্ত নিতে কারখানার হাতে রয়েছে।
db_insert()
ফাংশনটি বিবেচনা করুন , যার মধ্যে গুরুত্বপূর্ণ বিটগুলি নীচে দেখানো হয়েছে:function db_insert($table, array $options = array()) { // ... return Database::getConnection($options['target'])->insert($table, $options); }
Database::getConnection()
পদ্ধতি একটি কারখানা জানি এই সাইটটির জন্য একটি সংযোগ বস্তুর উপযুক্ত ফেরৎ হয়।ডাক্তার দ্রুপালের নির্ভরতা ইনজেকশন
ড্রুপাল 6-এ, মেনু সিস্টেমটি মুষ্টিবদ্ধ হয়েছিল এবং বহু-পদক্ষেপের প্রক্রিয়া হিসাবে পুনর্লিখন হয়েছিল। আমরা এখন একই পৃষ্ঠা কলব্যাকটি প্রয়োগ করব:
function example_menu() { $items['node/%node/example'] = array( 'page callback' => 'example_page', 'page arguments' => array(1), // ... ); return $items; } function example_page($node) { // Do useful stuff here. }
এই নতুন সেটআপে মেনু রাউটার আরও জটিল হয়। পরিবর্তে, পেজ কলব্যাকটি নোড পেয়েছে যার উপর এটি নির্ভর করে এটি, যার মধ্যে এটি ইনজেকশন। এটি আমাদের বেশ কয়েকটি সুবিধা দেয়।
ভাঙ্গা (r) এর জন্য যান
একটি সাধারণ পদ্ধতির মধ্যে ব্রোকার বা মধ্যস্থতার ধারণাটির কিছুটা ভিন্নতা। এই নকশায় কোনও বস্তু সরাসরি অন্য কোনও বস্তুর কাছ থেকে সরাসরি তথ্য অনুরোধ করে না। পরিবর্তে এটি কোনও মধ্যস্থতাকারী অবজেক্টকে জিজ্ঞাসা করে, যা এতে ectedুকিয়ে দেওয়া হয়েছিল, তার পক্ষে অনুরোধ করার জন্য। যদিও এর অর্থ এখনও প্রথম অবজেক্টটিকে সক্রিয়ভাবে তথ্যের জন্য অনুরোধ করতে হবে, এটি কেবলমাত্র মধ্যস্থতাকারী বস্তুর সাথে শক্তভাবে সংযুক্ত করা হয়েছে এবং অন্যান্য বস্তুর অগণিতের সাথে এটির জন্য তথ্যের জন্য অনুরোধ করার প্রয়োজন হতে পারে। এর অর্থ এই যে অন্যান্য সিস্টেমগুলি পরিবর্তিত হলে আমাদের কেবলমাত্র মধ্যস্থতাকারী আপডেট করতে হবে, এটি প্রতিটি স্পর্শকারী সিস্টেমই নয়।