cwola / transaction
简单的交易模块。
v1.1.1
2022-08-25 01:29 UTC
Requires
- php: ^8.0
- cwola/attribute: ^1.0
- cwola/event: ^1.0
README
简单的交易模块。
概述
"真正简单"的交易模块。
本模块不打算单独使用。
要求
- PHP8.0+
- cwola/attribute
- cwola/event
安装
composer require cwola/transaction
使用
<?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
添加事件
<?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