Yii2中事务的使用实例代码详解(2)

class Connection extends Component { // 保存当前连接的有效Transaction对象 private $_transaction; // 已经缓存有事务对象,且事务对象有效,则返回该事务对象 // 否则返回null public function getTransaction() { return $this->_transaction && $this->_transaction->getIsActive() ? $this->_transaction : null; } // 看看启用事务时,是如何使用事务对象的 public function beginTransaction($isolationLevel = null) { $this->open(); // 缓存的事务对象有效,则使用缓存中的事务对象 // 否则创建一个新的事务对象 if (($transaction = $this->getTransaction()) === null) { $transaction = $this->_transaction = new Transaction(['db' => $this]); } $transaction->begin($isolationLevel); return $transaction; } }

因此,可以认为整个Yii应用,使用了同一个 Transaction 对象,也就是说, Transaction::_level 在整个应用的生命周期中,是有延续性的。 这是实现事务嵌套的关键和前提。

以上所述是小编给大家介绍的Yii2中事务的使用实例代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6596e54bb4bb17d8dcee4de3ddb7cde4.html