sk/transaction
最新稳定版本:v1.0.0
Composer 安装命令:
composer require sk/transaction
包简介
Library to handle transaction during multiple actions
README 文档
README
Introduction
This library claims to provide an easy way to implement secure transactions during nearly everything.
Installation
This library can be easily installed via composer
composer require sk/transaction
or just add it to your composer.json file directly.
Usage
As a basic usage example, the CallbackTransaction is used to demonstrate the behaviour during three api calls:
<?php use SK\Transaction\CallbackTransaction; use SK\Transaction\Exception\RollbackException; use SK\Transaction\ParameterBag; use Acme\Api1Client; use Acme\Api2Client; use Acme\Api3Client; $api1Client = new Api1Client(); $callbackTransaction = new CallbackTransaction( // Do something important function (ParameterBag $parameters) use ($api1Client) { $api1Client->doSomethingImportant($parameters); }, // Roll back if an exception in one of the next transaction(s) occurred. // For more information see interface \SK\Transaction\OwnExceptionRollback function () use ($api1Client) { $api1Client->rollback(); } ); $api2Client = new Api2Client(); $callbackTransaction2 = new CallbackTransaction( function (ParameterBag $parameters = null) use ($api2Client) { $api2Client->doSomethingImportant($parameters); }, function () use ($api2Client) { $api2Client->rollback(); } ); $api3Client = new Api3Client(); $callbackTransaction2 = new CallbackTransaction( function (ParameterBag $parameters) use ($api3Client) { $api3Client->doSomethingImportant($parameters); }, function () use ($api3Client) { // This will never executed. For more information see \SK\Transaction\OwnExceptionRollback $api3Client->rollback(); } ); $callbackTransaction->append($callbackTransaction2); $callbackTransaction->append($callbackTransaction3); // or // $callbackTransaction2->append($callbackTransaction3); try { $callbackTransaction->execute(); } catch (RollbackException $e) { // Something really bad happens // But you can get the Exception which causes the rollback $e->getOrigin(); // And you can get the exception which occurred during rollback $e->getPrevious(); } catch (\Exception $e) { // An exception occurred, but all executed actions was rolled back successfully }
ToDo
- Write more documentation
- Fix typos
License
This library is under the MIT license. See the complete license in the LICENCE file.
统计信息
- 总下载量: 24
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-04-26