driiiftking / module-observers-priority
模块允许在分发事件时设置观察者实例的执行顺序
1.0.2
2022-12-17 11:55 UTC
Requires
- magento/framework: *
This package is not auto-updated.
Last update: 2024-09-21 20:10:39 UTC
README
功能
该模块允许您设置在分发事件时执行观察者实例的顺序
用法
通过 composer 安装模块
composer require driiiftking/module-observers-priority bin/magento module:enable Driiiftking_ObserversPriority bin/magento setup:upgrade在任意的 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