سؤال

هل المقصود من الاعتراض هو أن يكون الأسلوب المفضل عند التعامل مع تغيير سلوك الطريقة الأصلية في Magento2 كما كان المراقبون في magento1؟

https://wiki.magento.com/display/MAGE2DOC/Using+Interception
هل كانت مفيدة؟

المحلول

لا أعتقد أن المقصود من الاعتراض هو استبدال مراقبي الأحداث.
لا تزال هناك أحداث مرسلة في كود Magento2.

تعد المعترضات مجرد وسيلة لمعالجة إدخال أو إخراج الطريقة.
أو سلوك الطريقة (باستخدام around المعترض) ولكن من ما أفهمه فإن هذا نهج محفوف بالمخاطر.

أعتقد أنها طريقة لتجنب إعادة كتابة الفصل قدر الإمكان.
في Magento 1.x، إذا كنت بحاجة إلى تعديل نتيجة طريقة ما، فأنت بحاجة إلى تجاوز الفئة التي تحتوي على الطريقة نفسها.
الآن يمكنك ببساطة استخدام before, after أو around اعتراضية لمعالجة البيانات.

باستخدام المراقبين، يمكنك معالجة البيانات في نقاط ثابتة معينة لطريقة ما، وليس الطريقة الكاملة نفسها.

في رأيي، استخدام المراقبين عندما يكون ذلك ممكنًا لا يزال هو أفضل أسلوب للتخصيص حتى في Magento 2.

نصائح أخرى

الاعتراض هو تطور الأحداث.هدفها هو السماح للمطور بكتابة قانونه دون التفكير في نقاط الإرشاد.

مع الأحداث عليك أن تفكر في الأماكن التي تقوم فيها بمكافسة :: Respathevent () بحيث تكون الوحدة النمطية قابلة للتخصيص.

اعتراض يسمح لك بعدم التفكير في هذا.أنت فقط تكتب منطق عملك.كل طريقة استدعاء هي حدث.لذلك إذا كتبت التعليمات البرمجية الخاصة بك بطريقة مناسبة موجهة نحو الكائنات، فستكون قابلة للتخصيص بالكامل حسب التصميم.

ولكن الأحداث توفر خدمة أعلى مستوى توفر واجهة تتحدث لغة العمل.حتى الأحداث ستبقى في Magento 2.

حاليا لا يزال هناك خيار الاستماع إلى أحداث محددة وأود أن أقترح أن اعتراضي مجرد استبدال لإعادة كتابة.ما زلت أستخدم الأحداث عندما يكون هناك واحد في مكان لاحتياجاتك.

إذا نظرت إلى الإصدار الحالي، فإن بعض الوحدات النمطية لها ملفات GruitaceticetagCode تتضمن التعريفات. giveacodicetagpre.

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