inlm / dibi-transactions
Nested transactions for Dibi.
Fund package maintenance!
v1.1.0
2025-06-27 12:50 UTC
Requires
- php: 8.0 - 8.4
- dibi/dibi: ^5.0
Requires (Dev)
- nette/tester: ^2.5
- nette/utils: ^2.4 || ^3.0 || ^4.0
- tracy/tracy: ^2.4
This package is auto-updated.
Last update: 2026-02-27 14:35:42 UTC
README
Nested transactions for Dibi.
Installation
Download a latest package or use Composer:
composer require inlm/dibi-transactions
Inlm\Dibi-transactions requires PHP 8.0 or later and Dibi.
Usage
$connection = new Dibi\Connection(); $transactions = new Inlm\DibiTransactions\Transactions($connection);
transactional()
$value = $transactions->transactional(function () use ($connection) { $connection->query('...'); $connection->query('...'); return $value; });
Transaction
$transaction = $transactions->createTransaction(); try { $connection->query('...'); $connection->query('...'); $transaction->commit(); } catch (Exception $e) { $transaction->rollback(); throw $e; }
Object Transaction throws error if you forget to call commit() or rollback(). It can be connected with 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(); }
License: New BSD License
Author: Jan Pecha, https://www.janpecha.cz/