Skip to content
Menu
小小述博客
  • 首页
  • Nginx
  • Php
  • Laravel
  • Git
  • 在线工具
  • 资源下载
  • Magento2
小小述博客
2022年12月30日2023年9月17日

Magento 2 中怎么禁用事件观察器

Post Views: 34

作为 Magento 2 开发人员,有时您可能需要完全禁用在本机代码或第三方模块中实现的特定事件。一种选择是覆盖观察者方法,但这不是一个好的做法。相反,有更好的方法。您应该使用本机禁用属性。下面是一个关于如何禁用controller_action_noroute事件的示例。最初在 CMS 原生模块中定义:

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="controller_action_noroute">
        <observer name="cms" instance="Magento\Cms\Observer\NoRouteObserver" />
    </event>
    <event name="controller_action_nocookies">
        <observer name="cms" instance="Magento\Cms\Observer\NoCookiesObserver" />
    </event>
</config>

为了禁用该事件,我们需要创建一个新的 xml 文件并将禁用属性设置为 true 来定义相同的事件。

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="controller_action_noroute">
        <observer name="cms" disabled="true" />
    </event>
</config>
禁用事件

这是有效的,因为Invoker类中的调度方法检查节点,如果值为真,则不会调用观察者方法。看看这个方法就明白了:

 public function dispatch(array $configuration, Observer $observer)
    {
        /** Check whether event observer is disabled */
        if (isset($configuration['disabled']) && true === $configuration['disabled']) {
            return;
        }

        ...
        $this->_

发表回复

要发表评论,您必须先登录。

504 API Apt-get Bootstrap基础 Composer 基础 Docker elasticsearch facebook Google Go 入门 Https IntegerNet_Solr jdk Jquery Laravel Laravel-admin Laravel 8 Laravel 入门到精通教程 Laravel 基础 Linux Linux Cron Linux sudo linux命令 Linux权限 Linux 用户和组 Linux 解压 Lnmp Magento 2 Mamp Paypal php Phpstorm PHP优化 PHP函数 Php面试题 Robots solr Sourcetree SSH SSL Trello Wordpress 域名 抓包工具 阿里云服务器

学习资源链接

  • https://www.geeksforgeeks.org/
  • https://laravel-school.com/
  • https://laravelacademy.org/
  • https://zditect.com/guide/
  • https://www.studytonight.com/
  • https://dev.to/
  • https://dev.to/listings
  • https://dev.to/saifullah/8-free-websites-to-learn-coding-3c5
  • https://www.rakeshjesadiya.com/
  • magento-2-video-tutorials
  • https://www.javascripttutorial.net/
  • Ostechnix
  • Linux公社
  • LinuxHomene
  • Linux 服务器操作
  • Linux 就该这么学
  • Linux 从入门到精通
  • Linux 中国开源社区
  • Linux命令大全(手册)
  • Ubuntu Apache 命令学习
  • CSDN
  • 菜鸟学习教程
  • 鸟哥的Linux 私房菜
  • w3school教程
  • Bootstrap 中文网
  • Yii 中文网
  • Yii中文框架
  • 程序员的在线工具
  • 运维教程
  • 梦康的博客
  • 考评师
  • 社交分享教程
  • GitHub
  • 后端进阶
  • 端隐SDP 零信任安全
  • 示说网
  • 脚本之家
  • 开源资源
  • 蓝文资源库
  • Ubuntu 官网
  • linuxize.com
  • Linux Help
  • tecmint
  • 脚本之家在线工具
  • php1中文社区
  • 云知梦
  • IT之家
©2023 小小述博客 | Powered by WordPress and Superb Themes!