lightools/transaction-nesting
Allows you to nest transactions with dibi database connection.
Maintainers
Requires
- php: >=5.4
- dibi/dibi: >=2.0.0
Requires (Dev)
- php: >=5.5
- ext-sqlite3: *
- nette/tester: 1.*
Suggests
None
Provides
None
Conflicts
None
Replaces
None
MIT 453ee5845ccc7d79a25b141cc18abca7e18578c5
This package is auto-updated.
Last update: 2026-06-10 21:50:33 UTC
README
This library allows you to nest database transactions over dibi connection.
Installation
$ composer require lightools/transaction-nesting
Simple usage
TransactionManager will begin/commit/rollback database transaction only if there is no other transaction running.
So if you try to start new transaction when some transaction is active, it will not fail with error There is already an active transaction.
This means you can nest transactions safely and TransactionManager will make sure that only the outer transaction will be performed.
$dibi = new Dibi\Connection($config); $manager = new Lightools\TransactionNesting\TransactionManager($dibi); $manager->transactional(function () { // your logic });
Of course, this will break if you perform some query causing implicit commit (for example ALTER TABLE on MySQL).
How to run tests
$ vendor/bin/tester -c tests/php.ini -d extension_dir=ext tests
