承接 sk/transaction 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

sk/transaction

最新稳定版本:v1.0.0

Composer 安装命令:

composer require sk/transaction

包简介

Library to handle transaction during multiple actions

README 文档

README

Build Status SensioLabsInsight Coverage Status

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

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-04-26