تستخدم الوحدات الثلاث الخاصة بي نفس استخدام المراقب ولكن الوحدة الثالثة الخاصة بي يجب أن تقوم بتشغيل نفس المراقب في النهاية

magento.stackexchange https://magento.stackexchange.com/questions/104090

سؤال

كيفية ضبط ترتيب نفس المراقب في الوحدات الثلاث الخاصة بي؟

تعلن كل ثلاث وحدات لدي عن نفس المراقب.

الخاص بي أولا test1_module1 استخدام الوحدة sales_convert_quote_item_to_order_item مراقب

بلدي الثاني test1_module2 استخدام الوحدة نفسهاsales_convert_quote_item_to_order_item المراقب لذلك أضفت <depends><Test1_Module1/></depends> هذا الرمز في app/etc/modules/Test1_Module2.xml وأنا يمتد Test1_Module1_Model_Observer فئة في ملف مراقب الوحدة الثانية

بلدي الثالث test1_module3 استخدام الوحدة sales_convert_quote_item_to_order_item مراقب.

ووحدتي الثانية test1_module2 اختياري لذلك قد يكون موجودا أو غير موجود test1 طَرد

يجب أن تقوم الوحدة الثالثة الأخيرة بتشغيل نفس المراقب في الأخير (بعد الوحدة الأولى والثانية) ماذا أفعل؟

ملحوظة:وحدتي الثالثة test1_module3 سوف تعتمد على الوحدة الأولى test1_module1 وإذا لم تكن الوحدة الثانية موجودة، فيجب تشغيل نفس المراقب بعد الوحدة الأولى، وإذا كانت الوحدة الثانية موجودة، فيجب تشغيل مراقب الوحدة الثالثة بعد مراقب الوحدة الأولى والثانية.

هل كانت مفيدة؟

المحلول

لفهم ترتيب تحميل الوحدة الذي يحدد ترتيب تنفيذ المراقب، قم بإلقاء نظرة على: https://magento.stackexchange.com/a/74862/243

لديك حالة خاصة تتمثل في أنه يجب تحميل الوحدة الثالثة الخاصة بك بعد الوحدة الثانية، ولكن العمل بدونها، لذلك لا يمكنك الاعتماد عليها.

الحل البديل التالي يجب أن يقوم بالخدعة:اكتب ملف تعريف الوحدة النمطية لـ الوحدة الثانية مثله:

<config>
    <modules>
        <Test1_Module2>
            <active>true</active>
            <codePool>local</codePool>
        </Test1_Module2>
        <Test1_Module3>
            <depends>
                <Test1_Module2 />
            </depends>
        </Test1_Module3>
    </modules>
</config>

نظرًا لأن جميع ملفات XML موجودة في app/etc/modules تم دمجها قبل أن يتم تقييمها، وهذا سيضيف التبعية من الوحدة 3 إلى الوحدة 2، ولكن فقط إذا تم تثبيت الوحدة 2.إذا تم تثبيت الوحدة 2، ولكن لم يتم تثبيت الوحدة 3، فلا ينبغي أن تكون هناك مشكلة لأن XML أعلاه نفسه لا ينشط الوحدة 3.


بديل بسيط وغبي: قم بتسمية الوحدات بالترتيب الأبجدي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top