কীভাবে ম্যাগেন্টোতে পুনরায় লেখার শ্রেণি দ্বন্দ্ব রোধ করা যায়


9

স্থানীয় কোড পুলে আমার একটি কাস্টম মডিউল এবং সম্প্রদায় কোড পুলে একটি তৃতীয় পক্ষের এক্সটেনশান একই শ্রেণি উভয়ই প্রসারিত করার কারণে আমার ম্যাজেন্টো অনেপেজ চেকআউটটিতে একটি শ্রেণীর পুনর্লিখনের সমস্যা আছে ...

আমি একটি থেকে নোড নির্ভর যোগ করার জন্য চেষ্টা করেছি ModuleA_Name.xml এক মডিউল ফাইল তারপর বর্গ প্রসারিত ModuleB মধ্যে Onepage.php ফাইল কিন্তু এই কাজ করেননি।

কেউ আমাকে কীভাবে এটি করতে পারেন তা আমি জানি একজন পর্যবেক্ষক ব্যবহার করে এটি করার আরও একটি উপায় আছে তবে আমি এই মুহুর্তে কেবল সমাধানের প্রয়োজন হতে পারি? এছাড়াও, আমার জন্য নির্ভরতা ব্যবহার করা কি বিপজ্জনক হবে যেহেতু মডিউলবি কেবল ভিন্ন স্টোর / দর্শনগুলির জন্য সক্ষম হতে পারে তার অর্থ কি নির্ভরশীল মডিউলটি আর কাজ করবে না?

সহায়তার জন্য আগাম ধন্যবাদ...

ModuleA

<global>
  <rewrite>
      <moduleA>
          <from><![CDATA[#^/checkout/onepage/#]]></from>
          <to>/moduleA/onepage/</to>
      </moduleA>
      <moduleA>
          <from><![CDATA[#^/checkout/cart/add/#]]></from>
          <to>/moduleA/cart/add/</to>
      </moduleA>
  </rewrite>

ModuleB

<global>
    <models>
      <salesrep>
        <class>ModuleB_SalesRep_Model</class>
        <resourceModel>salesrep_mysql4</resourceModel>
      </salesrep>

      <salesrep_mysql4>
        <class>ModuleB_SalesRep_Model_Mysql4</class>
        <entities>
          <salesrep>
            <table>salesrep</table>
          </salesrep>
        </entities>
      </salesrep_mysql4>

      <checkout>
        <rewrite>
          <type_onepage>ModuleB_SalesRep_Model_Type_Onepage</type_onepage>
        </rewrite>
      </checkout>

      <modulebadminthemecontroller>
        <class>LucidPath_SalesRep_Controller</class>
      </modulebadminthemecontroller>
    </models>
</global>

1
কোন Onepageক্লাসটি বিশেষত ব্লক বা মডেল?
বেনমার্কগুলি

উত্তর:


20

বিরোধগুলি সমাধানের জন্য আপনার কাছে 3 টি পছন্দ রয়েছে:

  • পরস্পর মধ্যে ফাইল পরস্পরবিরোধী থেকে কোড মার্জ এবং লেখা সুইচ বন্ধ config.xml এক
  • একটি কনফিগার.এক্সএমএলটিতে পুনর্লিখনটি স্যুইচ করুন এবং তারপরে বিরোধী এক্সটেনশান পিএইচপি ফাইলটি অন্য এক্সটেনশানটিকে বাড়িয়ে দিন
  • <depends>একটি এক্সটেনশান অন্যের উপর নির্ভর করতে সক্ষমতা ব্যবহার করুন । তারপরে তারা সেই ক্রমে পুনর্লিখন করবে

উদাহরণ (বিকল্প # 2)

class A_Extension_Model_Type_Onepage extends Mage_Checkout_Model_Type_Onepage

আপনি এটিকে পরিবর্তন করবেন:

class A_Extension_Model_Type_Onepage extends B_Extension_Model_Type_Onepage

Https://stackoverflow.com/questions/14815717/m Multiple- modules- overriding- same- core- file- in- magento দেখুন


@ বেনমার্কগুলি আমি প্রতিটি কনফিগার.এক্সএমএল ফাইল থেকে কিছু কোড যুক্ত করেছি
user1704524

ওয়েল আমি মডিউলবি এর সাথে মডিউলএ এর ক্লাস বাড়িয়ে ক্লাস পুনর্লিখনের সমস্যাটি সমাধান করতে পেরেছি
user1704524

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