هل يحل الاعتراض في magento2 محل المراقبين في magento1؟
-
12-12-2019 - |
سؤال
هل المقصود من الاعتراض هو أن يكون الأسلوب المفضل عند التعامل مع تغيير سلوك الطريقة الأصلية في 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.