- some methods now need to return bool to be compatible
- added some missing type-hints
This commit is contained in:
Roland Häder 2022-06-20 08:12:09 +02:00
parent 9c80dd35e5
commit cc750d743b
Signed by: roland
GPG key ID: C82EDE5DDFA0BA77

View file

@ -33,7 +33,7 @@ class ExtendedPDO extends PDO
/** /**
* @var array Database drivers that support SAVEPOINT * statements. * @var array Database drivers that support SAVEPOINT * statements.
*/ */
protected static $_supportedDrivers = ["pgsql", "mysql"]; protected static $_supportedDrivers = ['pgsql', 'mysql'];
/** /**
* @var int the current transaction depth * @var int the current transaction depth
@ -80,9 +80,9 @@ class ExtendedPDO extends PDO
/** /**
* Commit current transaction * Commit current transaction
* *
* @return bool|void * @return bool
*/ */
public function commit() public function commit(): bool
{ {
// We don't want to "really" commit something, so skip the most outer hierarchy // We don't want to "really" commit something, so skip the most outer hierarchy
if ($this->_transactionDepth <= 1 && $this->hasSavepoint()) { if ($this->_transactionDepth <= 1 && $this->hasSavepoint()) {
@ -92,28 +92,29 @@ class ExtendedPDO extends PDO
$this->_transactionDepth--; $this->_transactionDepth--;
$this->exec("RELEASE SAVEPOINT LEVEL{$this->_transactionDepth}"); return $this->exec("RELEASE SAVEPOINT LEVEL{$this->_transactionDepth}");
} }
/** /**
* Rollback current transaction, * Rollback current transaction,
* *
* @throws PDOException if there is no transaction started * @throws PDOException if there is no transaction started
* @return bool|void * @return bool Whether rollback was successful
*/ */
public function rollBack() public function rollback(): bool
{ {
$this->_transactionDepth--; $this->_transactionDepth--;
if($this->_transactionDepth <= 0 || !$this->hasSavepoint()) { if ($this->_transactionDepth <= 0 || !$this->hasSavepoint()) {
$this->_transactionDepth = 0; $this->_transactionDepth = 0;
try { try {
parent::rollBack(); return parent::rollBack();
} catch (PDOException $e) { } catch (PDOException $e) {
// this shouldn't happen, but it does ... // this shouldn't happen, but it does ...
} }
} else { } else {
$this->exec("ROLLBACK TO SAVEPOINT LEVEL{$this->_transactionDepth}"); return $this->exec("ROLLBACK TO SAVEPOINT LEVEL{$this->_transactionDepth}");
} }
return false;
} }
} }