inlm / dibi-transactions
Dibi的嵌套事务
v1.0.0
2021-10-15 09:36 UTC
Requires
- php: >=5.6.0
- dibi/dibi: >=3.0.0
Requires (Dev)
- nette/tester: ^2.0
- nette/utils: ^2.4 | ^3.0
- tracy/tracy: ^2.4
This package is auto-updated.
Last update: 2024-09-13 08:21:36 UTC
README
Dibi的嵌套事务
安装
composer require inlm/dibi-transactions
Inlm\Dibi-transactions需要PHP 5.6.0或更高版本以及Dibi。
使用
$connection = new Dibi\Connection(); $transactions = new Inlm\DibiTransactions\Transactions($connection);
transactional()
$value = $transactions->transactional(function () use ($connection) { $connection->query('...'); $connection->query('...'); return $value; });
事务
$transaction = $transactions->createTransaction(); try { $connection->query('...'); $connection->query('...'); $transaction->commit(); } catch (Exception $e) { $transaction->rollback(); throw $e; }
对象Transaction
如果忘记调用commit()
或rollback()
会抛出错误。它可以与Tracy连接
$transactions->onUnresolved[] = array(Inlm\DibiTransactions\Bridges\Tracy::class, 'logUnresolved');
begin
/ commit
/ rollback
try { $transactions->begin(); $connection->query('...'); $connection->query('...'); $transactions->commit(); } catch (Exception $e) { $transactions->rollback(); }
许可证:新BSD许可证
作者:Jan Pecha,https://www.janpecha.cz/