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
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
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