needle-project/process-transaction
最新稳定版本:v0.1.0
Composer 安装命令:
composer require needle-project/process-transaction
包简介
Offer a transaction like support for php processes
README 文档
README
Transaction Process
This library helps you run your process with capabilities of rollback in case one of the processes fails! (Similar to Database Transactions).
1. Install
composer require needle-project/transactional
2. Usage
A simple usage:
<?php require_once 'vendor/autoload.php'; $paymentService = new class { public function chargeMoney() { // your logic echo "Customer has been charge!\n"; } public function refund() { echo "Customer has been refunded!\n"; } }; $stockReservationService = new class { public function reserveStock() { echo "Could not reserve stock!\n"; throw new \Exception("The trigger of failed process"); } }; $charge = new \NeedleProject\Transaction\Process( function () use ($paymentService) { return $paymentService->chargeMoney(); }, function () use ($paymentService) { return $paymentService->refund(); }, 'Payment Actions' ); $reserveStock = new \NeedleProject\Transaction\Process( function () use ($stockReservationService) { return $stockReservationService->reserveStock(); }, function () { echo "This will not be executed!\n"; }, "Stock Reserve" ); // Processing an order $executor = new \NeedleProject\Transaction\Executor(); $executor->addProcess($charge); $executor->addProcess($reserveStock); // Executing the processes try { $executor->execute(); } catch (\Exception $e) { $executor->rollBack(); } // Getting the process result echo $charge->getExecutionResult() . "\n"; echo $reserveStock->getRollBackResult() . "\n";
统计信息
- 总下载量: 3.31k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-05-11