cwola / transaction
Simple transaction modules.
v1.1.1
2022-08-25 01:29 UTC
Requires
- php: ^8.0
- cwola/attribute: ^1.0
- cwola/event: ^1.0
README
Simple transaction modules.
Overview
"Really simple" transaction modules.
This module is not intended to be used by itself.
Requirement
- PHP8.0+
- cwola/attribute
- cwola/event
Installation
composer require cwola/transaction
Usage
<?php
use Cwola\Transaction;
$transaction = new Transaction\Transaction;
$transaction->begin();
echo $transaction->inTransaction()
? 'OPENED' : 'CLOSED';
// output : OPENED
$transaction->commit();
echo $transaction->inTransaction()
? 'OPENED' : 'CLOSED';
// output : CLOSED
Add event
<?php
use Cwola\Transaction;
use Cwola\Event;
$transaction = new Transaction\Transaction;
$transaction->addEventListener('beginning', function() {
echo 'beginning... : ';
});
$transaction->addEventListener('begin', function(Event\Event $event) {
echo sprintf('SUCCESS %s', $event->timeStamp) . PHP_EOL;
});
$transaction->addEventListener('rollbacking', function() {
echo 'rollbacking... : ';
});
$transaction->addEventListener('rollback', function(Event\Event $event) {
echo sprintf('SUCCESS %s', $event->timeStamp) . PHP_EOL;
});
$transaction->addEventListener('committing', function() {
echo 'committing... : ';
});
$transaction->addEventListener('commit', function(Event\Event $event) {
echo sprintf('SUCCESS %s', $event->timeStamp) . PHP_EOL;
});
$transaction->begin();
// output
// beginning... : SUCCESS 2022-08-22T23:32:51+09:00
echo $transaction->inTransaction()
? 'OPENED' : 'CLOSED';
// output : OPENED
$transaction->commit();
// output
// committing... : SUCCESS 2022-08-22T23:32:51+09:00
echo $transaction->inTransaction()
? 'OPENED' : 'CLOSED';
// output : CLOSED