lightools/transaction-nesting

允许您使用dibi数据库连接嵌套事务。

v1.0.1 2016-04-12 14:30 UTC

This package is auto-updated.

Last update: 2024-09-10 17:56:05 UTC


README

此库允许您在dibi连接上嵌套数据库事务。

安装

$ composer require lightools/transaction-nesting

简单用法

TransactionManager仅在没有其他事务正在运行时才会开始/提交/回滚数据库事务。因此,如果您在某个事务活跃时尝试启动新事务,它不会因错误 "已经有活动事务" 而失败。这意味着您可以安全地嵌套事务,并且TransactionManager将确保只执行外部事务。

$dibi = new Dibi\Connection($config);
$manager = new Lightools\TransactionNesting\TransactionManager($dibi);

$manager->transactional(function () {
    // your logic
});

当然,如果您执行某些导致隐式提交的查询(例如MySQL上的ALTER TABLE),这将导致中断。

如何运行测试

$ vendor/bin/tester -c tests/php.ini -d extension_dir=ext tests