function Connection::commitAll

Same name and namespace in other branches
  1. 11.x core/lib/Drupal/Core/Database/Connection.php \Drupal\Core\Database\Connection::commitAll()

Commits all the open transactions.

@internal This method exists only to work around a bug caused by Drupal incorrectly relying on object destruction order to commit transactions. Xdebug 3.3.0 changes the order of object destruction when the develop mode is enabled.

File

core/lib/Drupal/Core/Database/Connection.php, line 303

Class

Connection
Base Database API class.

Namespace

Drupal\Core\Database

Code

public function commitAll() {
    $manager = $this->transactionManager();
    if ($manager && $manager->inTransaction() && method_exists($manager, 'commitAll')) {
        $this->transactionManager()
            ->commitAll();
    }
    // BC layer.
    // @phpstan-ignore-next-line
    if (!empty($this->transactionLayers)) {
        // Make all transactions committable.
        // @phpstan-ignore-next-line
        $this->transactionLayers = array_fill_keys(array_keys($this->transactionLayers), FALSE);
        // @phpstan-ignore-next-line
        $this->popCommittableTransactions();
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.