lightools / transaction-nesting
Allows you to nest transactions with dibi database connection.
Installs: 13 978
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 0
Open Issues: 0
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-12-10 18:32:18 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