yii-dream-team / yii2-lockable-activerecord
为 Yii2 ActiveRecord 提供悲观锁定行为
1.0.5
2017-08-03 09:15 UTC
Requires
- php: >=5.4.0
- yiisoft/yii2: *
README
本包允许在使用 ActiveRecord 模型时使用悲观锁定(select for update)。
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一
php composer.phar require --prefer-dist yii-dream-team/yii2-lockable-activerecord "*"
或者将以下内容添加到你的 composer.json 文件的 require
部分。
"yii-dream-team/yii2-lockable-activerecord": "*"
require
使用
将行为附加到你的控制器类。
public function behaviors()
{
return [
'\yiidreamteam\behaviors\LockableActiveRecord',
];
}
在你的类定义中添加 @mixin phpdoc。
/**
* Class Sample
* @package common\models
*
* @mixin \yiidreamteam\behaviors\LockableActiveRecord
*/
class Sample extends ActiveRecord { ... }
在事务中使用模型锁定。
$dbTransaction = $model->getDb()->beginTransaction(\yii\db\Transaction::SERIALIZABLE);
try {
$model->lock();
$model->doSomethingWhileLocked();
$dbTransaction->commit();
} catch(\Exception $e) {
$dbTransaction->rollBack();
throw $e;
}
许可证
MIT