ডায়.এক্সএমএলে কীভাবে গতিশীলভাবে << অগ্রাধিকার> সক্ষম / অক্ষম করবেন?


10

আমার বর্তমানে <preference/>আমার একটি di.xML ফাইলে নিম্নলিখিতগুলি রয়েছে:

<preference for="Magento\Contact\Controller\Index\Post" type="RadTest\TestModule\Controller\Contact\Post" />

অ্যাডমিন প্যানেলে আমার মডিউলটির জন্য আমার একটি সক্ষম / অক্ষম কনফিগারেশন বিকল্প রয়েছে। আমি কেবল <preference>তখনই সক্ষম করতে চাই যখন আমার কাস্টম কনফিগারেশন বিকল্পটি সক্ষম করতে সেট করা আছে।

<preference/>আমার মডিউলের কনফিগারেশনটি সেট করা আছে সে অনুযায়ী আমি কীভাবে গতিশীলভাবে ওভাররাইডিং সক্ষম ও অক্ষম করতে পারি ?

উত্তর:


13

আপনি কোনও কনফিগার সেটিংসের উপর ভিত্তি করে পছন্দগুলি সক্ষম এবং / অথবা অক্ষম করতে পারবেন না।
di.xmlশুধু কনফিগারেশন। এতে আপনার যুক্তি থাকতে পারে না তবে আপনি অন্য কিছু করতে পারেন।
আপনার ক্লাসে এমন একটি শর্ত থাকতে পারে যা আপনার কনফিগার পতাকাটি পরীক্ষা করে এবং সেই অনুসারে কিছু পদক্ষেপ নেয়।
আমি ধরে নিচ্ছি যে আপনার ক্লাসটি RadTest\TestModule\Controller\Contact\Postপ্রসারিত হয়েছে Magento\Contact\Controller\Index\Postকারণ আপনাকে কমপক্ষে একটি পদ্ধতি ওভাররাইড করতে হবে।
আসুন আমরা আপনাকে পদ্ধতিটি ওভাররাইড করতে বলি execute
আপনি আপনার ক্লাসটি এটি করতে পারেন:

namespace RadTest\TestModule\Controller\Contact;
class Post extends \Magento\Contact\Controller\Index\Post
{
    ....
    public function execute()
    {
        if (your config setting is disabled) {
            return parent::execute();
        }
        //your custom logic here
    }
}

1
এটি আসলে আমি যা করছিলাম এবং ভেবেছিলাম এটি কার্যকর হবে যদি তাদের ডায়নামিকভাবে অক্ষম করার কোনও উপায় থাকে। এখন আমি জানি আমরা পারব না। অনেক ধন্যবাদ! :)
জেনন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.