lightools / transaction-nesting
允许您使用dibi数据库连接嵌套事务。
v1.0.1
2016-04-12 14:30 UTC
Requires
- php: >=5.4
- dibi/dibi: >=2.0.0
Requires (Dev)
- php: >=5.5
- ext-sqlite3: *
- nette/tester: 1.*
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