driiiftking/module-observers-priority

模块允许在分发事件时设置观察者实例的执行顺序

安装: 3

依赖项: 0

建议者: 0

安全: 0

星标: 1

分支: 0

类型:magento2-module

1.0.2 2022-12-17 11:55 UTC

This package is not auto-updated.

Last update: 2024-09-21 20:10:39 UTC


README

功能

该模块允许您设置在分发事件时执行观察者实例的顺序

用法

  1. 通过 composer 安装模块

     composer require driiiftking/module-observers-priority
     bin/magento module:enable Driiiftking_ObserversPriority
     bin/magento setup:upgrade
    
  2. 在任意的 events.xml 文件中,您可以使用可选的 priority 属性来设置执行顺序。优先级越高,观察者的执行越早。默认优先级为 0。

原生 events.xml 文件

    <event name="some_magento_event">
        <observer name="observer_third" instance="Vendor\Module\Observer\Third"/>
        <observer name="observer_first" instance="Vendor\Module\Observer\First"/>
        <observer name="observer_last" instance="Vendor\Module\Observer\Last"/>
        <observer name="observer_second" instance="Vendor\Module\Observer\Second"/>
    </event>

可能的执行顺序:第三 > 第一 > 最后 > 第二

修改后的 events.xml 文件

    <event name="some_magento_event">
        <observer name="observer_third" instance="Vendor\Module\Observer\Third" priority="10"/>
        <observer name="observer_first" instance="Vendor\Module\Observer\First" priority="30"/>
        <observer name="observer_last" instance="Vendor\Module\Observer\Last"/>
        <observer name="observer_second" instance="Vendor\Module\Observer\Second" priority="20"/>
    </event>

执行顺序:第一 > 第二 > 第三 > 最后

CLI 调试工具

bin/magento dev:observer:info event_name [--area=areacode]

示例

bin/magento dev:observer:info cms_page_render --area=frontend