magento2中的Plugin机制--before方法详解

Magento2的插件机制允许在方法执行前后进行干预。before方法在目标方法执行前运行,它需要匹配目标方法的参数并返回相同类型的数组。例如,Checkout模块的LayoutProcessor类中的process方法被PaymentConfigurationProcess插件的beforeProcess方法修饰,用于在处理布局前添加自定义逻辑。
摘要由CSDN通过智能技术生成

本篇文章我们为大家介绍一下magento2中的Plugin机制中的before方法。

magento2的插件机制允许我们对指定方法运行之前或者之后对该方法进行动态修改,包括对方法的参数、返回值等。

before插件,顾名思义,在观察到的方法之前运行。在编写before plugin时,有几个要点需要记住:

before关键字被附加到observedinstance方法中。如果观察到的方法被调用getSomeValue,那么插件方法被调用beforeGetSomeValue。

before-plugin方法的第一个参数始终是观察到的实例类型,通常缩写为$subject或直接由类类型缩写——在我们的示例中是$processor。

为了提高可读性,我们可以对其进行类型转换。插件方法的所有其他参数必须与观察到的方法的参数匹配。

插件方法必须返回一个数组,该数组的参数类型和数量与观察到的方法的输入参数相同。让我们来看看Magento在插件实现之前的一个,

即<Magento_DIR>模块支付/etc/frontend/di.xml文件中指定的一个:

<type name="Magento\Checkout\Block\Checkout\LayoutProcessor">
    <plugin name="ProcessPaymentConfiguration"             type="Magento\Payment\Plugin\PaymentConfigurationProcess"/>
</type>

此插件的原始目标方法是Magento\Checkout\Plock\Checkout\LayoutProcessor类的处理方法:

public function process($jsLayout) {    // The rest of the code...    return $jsLayout;}

before插件的实现是通过Magento\Payment\plugin\PaymentConfigurationProcess类的beforeProcess方法提供的,如以下部分示例所示:

public function beforeProcess(
\Magento\ Checkout\ Block\ Checkout\ LayoutProcessor $processor, $jsLayout
) { // The rest of the code...    return [$jsLayout];}

以上内容来源于码小课:

码小课提供magento2全栈开发系统学习magento2的内容,欢迎大家访问学习。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值