inlm/dibi-transactions

Dibi的嵌套事务

v1.0.0 2021-10-15 09:36 UTC

This package is auto-updated.

Last update: 2024-09-13 08:21:36 UTC


README

Build Status Downloads this Month Latest Stable Version License

Dibi的嵌套事务

Donate

安装

下载最新包或使用Composer

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/