function Transaction::__construct
Same name in other branches
- 9 core/lib/Drupal/Core/Database/Transaction.php \Drupal\Core\Database\Transaction::__construct()
- 8.9.x core/lib/Drupal/Core/Database/Transaction.php \Drupal\Core\Database\Transaction::__construct()
- 11.x core/lib/Drupal/Core/Database/Transaction.php \Drupal\Core\Database\Transaction::__construct()
File
-
core/
lib/ Drupal/ Core/ Database/ Transaction.php, line 55
Class
- Transaction
- A wrapper class for creating and managing database transactions.
Namespace
Drupal\Core\DatabaseCode
public function __construct(Connection $connection, $name = NULL, string $id = '') {
// Transactions rely on objects being destroyed in order to be committed.
// PHP makes no guarantee about the order in which objects are destroyed so
// ensure all transactions are committed on shutdown.
Database::commitAllOnShutdown();
if ($connection->transactionManager()) {
$this->connection = $connection;
$this->name = $name;
return;
}
// Start of BC layer.
$this->connection = $connection;
// If there is no transaction depth, then no transaction has started. Name
// the transaction 'drupal_transaction'.
// @phpstan-ignore-next-line
if (!($depth = $connection->transactionDepth())) {
$this->name = 'drupal_transaction';
}
elseif (!$name) {
$this->name = 'savepoint_' . $depth;
}
else {
$this->name = $name;
}
// @phpstan-ignore-next-line
$this->connection
->pushTransaction($this->name);
// End of BC layer.
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.