public function __destruct() { if (!empty($this->keys)) { throw new UncommittedTransaction('Transaction is about to be destroyed without having been ' . 'committed or rolled back.'); } }