sk/transaction 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱: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
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

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

其他信息

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

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固