একটি হার্ড নির্ভরতা কি এবং একটি নরম নির্ভরতা কি?


18

ম্যাজেন্টো 2 (যে কোনও স্থিতিশীল সংস্করণ) এ আপনি এই কমান্ডটি চালাতে পারেন bin/magento info:dependencies:show-modulesএবং আপনি আপনার অ্যাপ্লিকেশনটির মূলটিতে এমন একটি সিএসভি ফাইল পাবেন modules-dependencies.csvযা দেখতে সমস্ত মডিউল নির্ভরতার সাথে ডাকে :

এখানে চিত্র বর্ণনা লিখুন

একটি হার্ড নির্ভরতা কী এবং একটি নরম নির্ভরতা কী? প্রত্যেকের একটি উদাহরণ সাহায্য করবে।


2
এটি পরীক্ষা করে সহায়তা করতে পারেন devdocs.magento.com/guides/v2.0/architecture/archi_pers ਪਰਿট্যাশনস্
কেতন

@KetanKpBorada। ধন্যবাদ। ভাল পড়ার উপাদান, তবে শক্ত এবং নরম উভয় নির্ভরতার একটি উদাহরণ সাহায্য করবে, আপনার যদি এরকম উদাহরণ থাকে তবে দয়া করে এটি একটি উত্তর হিসাবে রাখুন।
মারিয়াস

উত্তর:


13

তিনটি পৃথক নির্ভরতা পার্সার রয়েছে (এর বাস্তবায়ন Magento\Setup\Module\Dependency\ParserInterface):

  • কোড: কোড ব্যবহৃত ক্লাসের জন্য দেখায়
  • কনফিগার / এক্সএমএল: মডিউল ঘোষণায় নির্ভরতাগুলির সন্ধান করে
  • সুরকার / জেসন: কম্পোজারে জেএসসনে নির্ভরতাগুলির সন্ধান করে

কেবলমাত্র হার্ড এবং নরম নির্ভরতার মধ্যে পার্থক্য তৈরি করে তা হলেন সুরকার পার্সার (দেখুন: ম্যাজেন্টো \ সেটআপ \ মডিউল \ নির্ভরতা \ পার্সার \ সুরকার \ জসন :: এক্সট্র্যাক্ট ডিপেন্ডেন্সি () )

একটি নরম নির্ভরতা হ'ল একটি প্যাকেজ, "প্রস্তাবিত" এ তালিকাভুক্ত, একটি " হার্ড " নির্ভর প্যাকেজ "প্রয়োজনীয়" তে থাকে।

ডিফল্ট নির্ভরতা ধরণ শক্ত , এর অর্থ অন্যান্য পার্সারদের দ্বারা পাওয়া নির্ভরতা সর্বদা শক্ত ( ম্যাজেন্টো \ সেটআপ \ মডিউল \ নির্ভরতা \ প্রতিবেদন \ নির্ভরতা \ ডেটা \ নির্ভরতা :: __ গঠন () )।


12

একটি সহজ এবং স্পষ্ট ব্যাখ্যা (ম্যাজেন্টো ইউ ফান্ডামেন্টাল কোর্স থেকে):

হার্ড নির্ভরতা

বোঝায় যে কোনও মডিউল অন্যান্য মডিউলগুলির উপর নির্ভর করে সেগুলি ছাড়া এটি কাজ করতে পারে না

হার্ড নির্ভরতার উদাহরণ অন্তর্ভুক্ত:

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

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.