Властивість sortOrder для плагіни в Magento визначає, коли їх викликати (до, після або навколо методу), за умови, що для одного й того ж методу налаштовано більше одного плагіна. Правила пріоритетності

<config>
    <type name="{ObservedType}">
      <plugin name="{pluginName}" type="{PluginClassName}" sortOrder="1" disabled="false" />
    </type>
</config>

такі:

  • Перед виконанням оригінального методу Magento запустить плагіни перед від найменшого до найбільшого значення в sortOrder.
  • . Частина коду плагіна навколо також буде виконана від найменшого до найбільшого значення перед викликом оригінального методу (викликається).
  • Властивість після того, як плагін викликається від найбільшого до найменшого після виклику оригінального методу.

Приклад:

Припустимо, що є три класи плагінів (Plugin10, Plugin20, Plugin30). Кожен клас плагіна має методи перед, після того, як плагін та навколо для одного й того ж методу. sortOrder виглядає наступним чином для кожного з них:

Plugin10 - 10
Plugin20 - 20
Plugin30 - 30

Плагіни та оригінальний метод будуть викликані в такому порядку:

1 Plugin10::beforeMethod
2    Plugin10::aroundMethod // first part of the code,that is called before callable
3        Plugin20::beforeMethod
4            Plugin20::aroundMethod // before executing callable
5                Plugin30::beforeMethod
6                    Plugin30::aroundMethod // before executing callable
7                        Class:method
8                    Plugin30::aroundMethod // after executing callable
9               Plugin30::afterMethod
10            Plugin20::aroundMethod // after executing callable
11        Plugin20::afterMethod
12    Plugin10::aroundMethod // after executing callable
13 Plugin10::afterMethod