একটি সহজ এবং স্পষ্ট ব্যাখ্যা (ম্যাজেন্টো ইউ ফান্ডামেন্টাল কোর্স থেকে):
হার্ড নির্ভরতা
বোঝায় যে কোনও মডিউল অন্যান্য মডিউলগুলির উপর নির্ভর করে সেগুলি ছাড়া এটি কাজ করতে পারে না ।
হার্ড নির্ভরতার উদাহরণ অন্তর্ভুক্ত:
- মডিউলটিতে এমন কোড রয়েছে যা অন্য মডিউল থেকে সরাসরি যুক্তি ব্যবহার করে (দৃষ্টান্ত, শ্রেণি ধ্রুবক, স্থির পদ্ধতি, পাবলিক শ্রেণীর বৈশিষ্ট্য, ইন্টারফেস এবং বৈশিষ্ট্য)।
- মডিউলটিতে স্ট্রিং রয়েছে যা শ্রেণীর নাম, পদ্ধতির নাম, শ্রেণীর ধ্রুবক, শ্রেণীর বৈশিষ্ট্য, ইন্টারফেস এবং অন্য মডিউলের বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করে।
- মডিউলটি অন্য মডিউলে ঘোষিত কোনও বস্তুকে ডি-সিরিয়ালাইজ করে।
- মডিউলটি অন্য মডিউল দ্বারা ব্যবহৃত ডাটাবেস টেবিলগুলি ব্যবহার করে বা সংশোধন করে।
Magento_AdminNotification
একটি হার্ড নির্ভরতা আছে Magento_Store
নরম নির্ভরতা
বোঝায় যে একটি মডিউল অন্যান্য মডিউলগুলির উপর নির্ভর করে যা এটি নির্ভর করে তা ছাড়া কাজ করতে পারে।
নরম নির্ভরতার উদাহরণগুলির মধ্যে রয়েছে:
- মডিউলটি সরাসরি অন্য মডিউলের উপলব্ধতা পরীক্ষা করে।
- মডিউলটি অন্য মডিউলের কনফিগারেশন প্রসারিত করে।
- মডিউলটি অন্য মডিউলটির বিন্যাস প্রসারিত করে।
Magento_AdvancedPricingImportExport
এর Magento_CatalogImportExport
মতো কোডের সাথে একটি নরম নির্ভরতা রয়েছে :
if (!$model instanceof \Magento\CatalogImportExport\Model\Export\Product\Type\AbstractType) {
throw new \Magento\Framework\Exception\LocalizedException(
__(
'Entity type model must be an instance of'
. ' \Magento\CatalogImportExport\Model\Export\Product\Type\AbstractType'
)
);
}
যদি কোনও মডিউল অন্য মডিউল থেকে কোড ব্যবহার করে তবে এটি নির্ভরতা স্পষ্টভাবে ঘোষণা করতে হবে।
সম্পাদনা: সবেমাত্র লক্ষ্য করা গেছে যে এটি সরকারী দস্তাবেজগুলিতেও স্পষ্টভাবে ব্যাখ্যা করা হয়েছে: https://devdocs.magento.com/guides/v2.3/architecture/archi_persferencess / কম্পোনেন্টস / মডুলস / আধুনিক_d depend.html