php+监听类名,php – 命名Laravel事件,监听器和Jobs

本文介绍了一种在应用程序中改进事件监听器的方法,以提高代码的清晰度和可维护性。通过避免直接将监听器与特定事件绑定,而是让监听器将任务委托给专门的服务或工作者,例如在`OrderWasPaid`事件触发时,启动订阅、发送通知等操作。这种方式允许在不同场景下复用服务,提高了代码的灵活性和模块化。
摘要由CSDN通过智能技术生成

我建议更改更清楚地了解正在发生的事情的侦听器名称,因此我将避免直接将侦听器与事件配对.

我们正在使用一种贫血的事件/倾听者方法,因此听众将实际任务传递给“实干家”(工作,服务,您将其命名).

此示例取自实际系统:

应用程序/供应商/ EventServiceProvider.PHP:

OrderWasPaid::class => [

ProvideAccessToProduct::class,StartSubscription::class,SendOrderPaidNotification::class,ProcessPendingShipment::class,logorderPayment::class

],

StartSubscription监听器:

namespace App\Modules\Subscription\Listeners;

use App\Modules\Order\Contracts\OrderEventInterface;

use App\Modules\Subscription\Services\SubscriptionCreator;

class StartSubscription

{

/**

* @var SubscriptionCreator

*/

private $subscriptionCreator;

/**

* StartSubscription constructor.

*

* @param SubscriptionCreator $subscriptionCreator

*/

public function __construct(SubscriptionCreator $subscriptionCreator)

{

$this->subscriptionCreator = $subscriptionCreator;

}

/**

* Creates the subscription if the order is a subscription order.

*

* @param OrderEventInterface $event

*/

public function handle(OrderEventInterface $event)

{

$order = $event->getOrder();

if (!$order->isSubscription()) {

return;

}

$this->subscriptionCreator->createFromOrder($order);

}

}

这样,您可以在应用程序的其他区域中调用作业/服务(在此示例中为SubscriptionCreator).

除了OrderWasPaid之外,还可以将侦听器绑定到其他事件.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值