31 lines
737 B
PHP
31 lines
737 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;
|
|
|
|
function inTransaction(): bool;
|
|
|
|
/**
|
|
* démarrer une transaction
|
|
*
|
|
* si $func!==null, l'apppeler. ensuite, si $commit===true, commiter 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;
|
|
|
|
function commit(): void;
|
|
|
|
function rollback(): void;
|
|
}
|