ম্যাজেন্টো 2 - আমি di.xML এবং মডিউলটির জন্য di.xML কীভাবে ব্যবহার করব?


12

ম্যাজেন্টো 2-তে, আমি কী ক্ষেত্রে ব্যবহার করব di.xmlএবং di.xmlমডিউলটির জন্য কীভাবে ব্যবহার করব ?

যে কেউ জানত, দয়া করে আমাকে ধাপে ধাপে দেখান।


2
আপনি ম্যাজেন্টো অফিসিয়াল সাইট থেকে আরও তথ্য পেতে পারেন: devdocs.magento.com/guides/v2.0/existance-dev-guide/…
সুরেশ

উত্তর:


54

What case We use di.xml ?

  • আমরা একটি নির্দিষ্ট শ্রেণীর (পুনর্লিখন) অগ্রাধিকারের জন্য di.xML ব্যবহার করতে পারি।
  • আমরা নতুন পাঠাতে বা বিদ্যমান শ্রেণি আর্গুমেন্টগুলি প্রতিস্থাপন করতে পারি ।
  • ফাংশনের আগে, তার পরে এবং তার আশেপাশে কিছু স্টাফ করার জন্য প্লাগইনগুলি ব্যবহার করুন
  • ভার্চুয়ালটাইপগুলি ব্যবহার করে অন্য শ্রেণির একটি উপ-শ্রেণি তৈরি করে।

আসুন আমরা Magento 2 গ্রাহক মডিউল থেকে একটি দ্রুত উদাহরণ গ্রহণ করি।

1.Preference

<preference for="Magento\Customer\Api\AddressRepositoryInterface"
            type="Magento\Customer\Model\ResourceModel\AddressRepository" />

কোডের উপরে, যখন কেউ আপনাকে Magento\Customer\Api\AddressRepositoryInterfaceকোনওটি ইনস্ট্যান্ট করতে বলেছে এটি একটি ম্যাজেন্টো \ গ্রাহক \ মডেল \ রিসোর্সমোডেল \ অ্যাড্রেস রিপোসিটরি অবজেক্ট (টাইপ অ্যাট্রিবিউট) ইনস্ট্যান্ট করবে।

শ্রেণি পছন্দ কনফিগারেশন কেবল ইন্টারফেসের জন্য নয় আমরা আসল ক্লাসগুলিকেও পরিবর্তন করতে পারি।

<preference for="Magento\Customer\Model\CustomerManagement"
            type="Magento\Customer\Model\customModel" />

আপনি 'কাস্টমম্যানেজমেন্ট' এর জন্য 'কাস্টমমডেল' শ্রেণি তৈরি করতে পারেন এবং পরিবর্তনগুলি করতে পারেন। ক্লাস পুনর্লিখন সিস্টেমের প্রতিস্থাপন হিসাবে শ্রেণি পছন্দ সিস্টেম।

http://alanstorm.com/magento_2_object_manager_preferences

2. যুক্তি

<type name="Magento\Customer\Model\ResourceModel\Group" shared="false">
    <arguments>
        <argument name="groupManagement" xsi:type="object">Magento\Customer\Api\GroupManagementInterface\Proxy</argument>
    </arguments>
</type>

উপরের কোডে, আমরা একটি আর্গুমেন্ট হিসাবে অবজেক্টটি প্রেরণ করছি, আমরা সিস্টেমকে বলছি নাম সহ একটি বস্তু হিসাবে "প্রক্সি" শ্রেণিটি সন্নিবেশ করানোর জন্য groupManagement। এছাড়াও, আমরা বিদ্যমান যুক্তিটি প্রতিস্থাপনের জন্য যুক্তিগুলিও ব্যবহার করতে পারি।

http://alanstorm.com/magento_2_object_manager_argument_replacement

3. প্লাগইন

<type name="Magento\Customer\Model\ResourceModel\Visitor">
    <plugin name="catalogLog" type="Magento\Catalog\Model\Plugin\Log" />
</type>

উপরের কোডে, public function clean($object)দর্শকদের ক্লাসে afterClean(Visitor $subject, $logResourceModel)লগ ক্লাসে প্রকাশ্য ফাংশনের পরে ডাকা হয় ।

4 ভার্চুয়াল প্রকার

ভার্চুয়াল টাইপ তৈরি করা হ'ল বিদ্যমান ক্লাসের জন্য সাব-ক্লাস তৈরির মতো।

আরও নোটের জন্য দয়া করে ব্যবহারিক উদাহরণগুলির মধ্যে যান যা আমি অ্যালানের লিঙ্ক হিসাবে উল্লেখ করেছি, অনুশীলন করে আপনি আরও সুস্পষ্ট অভিজ্ঞতা পেতে পারেন।

আশাকরি এটা সাহায্য করবে.... :)


1
মডিউল প্রক্রিয়া সক্ষম / অক্ষম করার জন্য di.xML এ ifconfig সহ সেট কনফিগারেশন সম্পর্কে আপনার কোনও ধারণা আছে? আপনি যদি সে সম্পর্কে হন তবে দয়া করে আমাকে সমস্যাটি সমাধান করতে সহায়তা করুন।
কার্তিক আসোদারিয়া

খুব দরকারী তথ্য।
শিবম

2
এই সমস্ত জিনিস কেউ কীভাবে শিখবে?
মোহাম্মদ জোরেদ

সুতরাং <পছন্দসই> পরিবর্তে ক্লাসটিকে "জন্য" কল করার পরিবর্তে, এটি শ্রেণিকে "টাইপ" বা কিছু বলে? আমি এখনও এই সম্পর্কে বিভ্রান্ত করছি। @@
ফুডু

3
ওহ এনভিএম, আমি এটি এখানে সত্যিই ভাল উত্তর পেয়েছি। ইঞ্চি.না.মেজটানটো ২/৩ ওভারাইডিং
ক্লাসস_মেন্টো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.