nulib/php/src/db/ITransactor.php
2025-04-10 14:33:24 +04:00

34 lines
850 B
PHP

<?php
namespace nulib\db;
/**
* Class ITransactor: un objet qui peut faire des opérations dans une
* transaction
*/
interface ITransactor {
/**
* Indiquer qu'une transaction va être étendue à tous les objets mentionnés
*/
function willUpdate(...$transactors): self;
/** Indiquer si une transaction est en cours */
function inTransaction(): bool;
/**
* démarrer une transaction
*
* si $func!==null, l'apppeler. ensuite, si $commit===true, valider la
* transaction. si une erreur se produit lors de l'appel de la fonction,
* annuler la transaction
*
* $func est appelée avec la signature ($this)
*/
function beginTransaction(?callable $func=null, bool $commit=true): void;
/** valider la transaction */
function commit(): void;
/** annuler la transaction */
function rollback(): void;
}