ম্যাজেন্টো 2: কোন এক্সটেনশন প্রক্রিয়াটি বেছে নেবেন?


9

আমরা দুটি উপায়ে নিয়ামক প্রসারিত করতে পারি: পছন্দ ব্যবহার এবং প্লাগইন ব্যবহার। তবে আমি এটি বুঝতে পারি না, কোনটি ভাল এবং পছন্দ বনাম প্লাগইনের সুবিধা / অসুবিধাগুলি।

<preference for="Magento\Checkout\Controller\Index\Index" type="mymodule\Helloworld\Controller\Index\Index" />

<type name="Magento\Catalog\Model\Product">
    <plugin name="getname-test-module" type="mymodule\Helloworld\Model\Plugin\Product" sortOrder="10"/>
</type>

উত্তর:


11

যখনই সম্ভব প্লাগইনগুলি ব্যবহার করুন, তারপরে পর্যবেক্ষকরা ( প্রত্যেকটির উপকারিতা এবং নীতিগুলি দেখুন ) এটি আপনাকে অন্যান্য এক্সটেনশনের (তৃতীয় পক্ষের মডিউল) বিরোধগুলি এড়াতে দেয় allow

পুরো কোর বর্গ / ইন্টারফেস বাস্তবায়ন যদি কাস্টম একের সাথে প্রতিস্থাপন করা হয় তবেই পছন্দটি ব্যবহার করা উচিত। অ্যাকাউন্টে বিবেচনা করুন যে যে কোনও সময়ে কেবলমাত্র একটি পছন্দ সক্রিয় রয়েছে (যা এক, সংজ্ঞায়িত ক্রম দ্বারা সংজ্ঞায়িত module.xml), সুতরাং অন্য বর্ধন যদি একই শ্রেণি / ইন্টারফেসের জন্য অগ্রাধিকার সংজ্ঞা দেয় তবে একটি দ্বন্দ্ব হতে পারে (এই এক্সটেনশনগুলি একসাথে কাজ করতে পারে না)।


4
  • আপনার কার্যকারিতা যদি পুরো কার্যকারিতাটি পুরোপুরি প্রতিস্থাপন করে তবে আপনি পছন্দগুলি ব্যবহার করতে পারেন।
  • আপনি যদি বেসটিতে কার্যকারিতা যুক্ত করতে চান বা কিছু শ্রেণীর পদ্ধতি আংশিকভাবে প্রতিস্থাপন করতে চান তবে দয়া করে প্লাগইনগুলি ব্যবহার করুন।

1
বুদ্ধিমান মনে হয় যে আপনি যদি মূল কার্যকারিতাটি প্রতিস্থাপন করেন তবে মূল আপডেটগুলি পর্যবেক্ষণ করা এবং আপনার কাস্টম মডিউলগুলি আপ-টু-ডেট রয়েছে তা নিশ্চিত করার ভার আপনার উপর
বর্তায়

1

অ্যাডিশনাল ইনফোস: ইন্টার্ন এম 2 এ ব্যবহৃত প্রায় সমস্ত পছন্দগুলি কেবল বেস কংক্রিটের শ্রেণি এবং ইন্টারফেসের মধ্যে সম্পর্ক রাখতে পারে, যেমন:

<preference for="Magento\Store\Model\StoreManagerInterface" type="Magento\Store\Model\StoreManager" />

যেমনটি আপনি মনে করেন এটি একবার ব্যবহার করা হয়েছে:

<preference for="Magento\ImportExport\Controller\Adminhtml\Export\GetFilter" type="Magento\AdvancedPricingImportExport\Controller\Adminhtml\Export\GetFilter" />
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.