public function __destruct() { while (count($this->transactions) > 1) { /** @var Transaction $transaction */ $transaction = array_pop($this->transactions); $transaction->rollback(); } }