1. Go to this page and download the library: Download sk/transaction library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
sk / transaction example snippets
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
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.