nulib/php/src/db/ITransactor.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;
}