Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

HiEventsDev/Hi.Events

3299 stars
3 code files
View HiEventsDev/Hi.Events on GitHub

backend/app/Events/OrderStatusChangedEvent.php

Open in GitHub
use HiEvents\DomainObjects\OrderDomainObject;
use Illuminate\Foundation\Events\Dispatchable;
 
class OrderStatusChangedEvent
{
use Dispatchable;
 
public function __construct(
public OrderDomainObject $order,
public bool $sendEmails = true,
)
{
}
}

backend/app/Listeners/Order/SendOrderDetailsEmailListener.php

Open in GitHub
use HiEvents\Events\OrderStatusChangedEvent;
use HiEvents\Jobs\Order\SendOrderDetailsEmailJob;
 
readonly class SendOrderDetailsEmailListener
{
public function handle(OrderStatusChangedEvent $changedEvent): void
{
if (!$changedEvent->sendEmails) {
return;
}
 
dispatch(new SendOrderDetailsEmailJob($changedEvent->order));
}
}

backend/app/Services/Handlers/Order/CompleteOrderHandler.php

Open in GitHub
use HiEvents\DomainObjects\OrderDomainObject;
use HiEvents\Events\OrderStatusChangedEvent;
use HiEvents\Services\Handlers\Order\DTO\CompleteOrderDTO;
 
readonly class CompleteOrderHandler
{
// ...
 
public function handle(string $orderShortId, CompleteOrderDTO $orderData): OrderDomainObject
{
return DB::transaction(function () use ($orderData, $orderShortId) {
// ...
 
OrderStatusChangedEvent::dispatch($updatedOrder);
 
return $updatedOrder;
});
}
 
// ...
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.