1
0
mirror of https://github.com/dg/dibi.git synced 2025-08-07 22:56:35 +02:00

DibiConnection: deprecated inTransaction (BC break!)

This commit is contained in:
David Grudl
2009-12-17 20:45:30 +01:00
parent f6d4107116
commit 20d22dd81b
3 changed files with 5 additions and 28 deletions

View File

@@ -40,9 +40,6 @@ class DibiConnection extends DibiObject
/** @var bool Is connected? */ /** @var bool Is connected? */
private $connected = FALSE; private $connected = FALSE;
/** @var bool Is in transaction? */
private $inTxn = FALSE;
/** /**
@@ -153,9 +150,6 @@ class DibiConnection extends DibiObject
final public function disconnect() final public function disconnect()
{ {
if ($this->connected) { if ($this->connected) {
if ($this->inTxn) {
$this->rollback();
}
$this->driver->disconnect(); $this->driver->disconnect();
$this->connected = FALSE; $this->connected = FALSE;
} }
@@ -418,18 +412,10 @@ class DibiConnection extends DibiObject
public function begin($savepoint = NULL) public function begin($savepoint = NULL)
{ {
$this->connect(); $this->connect();
if (!$savepoint && $this->inTxn) {
throw new DibiException('There is already an active transaction.');
}
if ($this->profiler !== NULL) { if ($this->profiler !== NULL) {
$ticket = $this->profiler->before($this, IDibiProfiler::BEGIN, $savepoint); $ticket = $this->profiler->before($this, IDibiProfiler::BEGIN, $savepoint);
} }
if ($savepoint && !$this->inTxn) {
$this->driver->begin();
}
$this->driver->begin($savepoint); $this->driver->begin($savepoint);
$this->inTxn = TRUE;
if (isset($ticket)) { if (isset($ticket)) {
$this->profiler->after($ticket); $this->profiler->after($ticket);
} }
@@ -444,14 +430,10 @@ class DibiConnection extends DibiObject
*/ */
public function commit($savepoint = NULL) public function commit($savepoint = NULL)
{ {
if (!$this->inTxn) {
throw new DibiException('There is no active transaction.');
}
if ($this->profiler !== NULL) { if ($this->profiler !== NULL) {
$ticket = $this->profiler->before($this, IDibiProfiler::COMMIT, $savepoint); $ticket = $this->profiler->before($this, IDibiProfiler::COMMIT, $savepoint);
} }
$this->driver->commit($savepoint); $this->driver->commit($savepoint);
$this->inTxn = (bool) $savepoint;
if (isset($ticket)) { if (isset($ticket)) {
$this->profiler->after($ticket); $this->profiler->after($ticket);
} }
@@ -466,14 +448,10 @@ class DibiConnection extends DibiObject
*/ */
public function rollback($savepoint = NULL) public function rollback($savepoint = NULL)
{ {
if (!$this->inTxn) {
throw new DibiException('There is no active transaction.');
}
if ($this->profiler !== NULL) { if ($this->profiler !== NULL) {
$ticket = $this->profiler->before($this, IDibiProfiler::ROLLBACK, $savepoint); $ticket = $this->profiler->before($this, IDibiProfiler::ROLLBACK, $savepoint);
} }
$this->driver->rollback($savepoint); $this->driver->rollback($savepoint);
$this->inTxn = (bool) $savepoint;
if (isset($ticket)) { if (isset($ticket)) {
$this->profiler->after($ticket); $this->profiler->after($ticket);
} }
@@ -482,12 +460,11 @@ class DibiConnection extends DibiObject
/** /**
* Is in transaction? * @deprecated
* @return bool
*/ */
public function inTransaction() public function inTransaction()
{ {
return $this->inTxn; trigger_error('Deprecated: use "SELECT @@autocommit" query instead.', E_USER_WARNING);
} }