大卫

大卫

这家伙有点懒,还没写个性签名!

  • 财富值15
  • 威望值10
  • 总积分115

个人信息

  • 发布了扩展
    LockableQuery(select for update support for MySQL)
  • Yii2 Lockable ActiveQuery

    This package allows you to use pessimistic locking (select for update) when you work with ActiveRecord Query.

    Installation

    The preferred way to install this extension is through composer.

    Either run

    php composer.phar require --prefer-dist amoydavid/yii2lockable-query "*"
    

    or add

    "amoydavid/yii2lockable-query": "*"
    

    to the require section of your composer.json.

    Usage

    Set schema map for database connection

    <?php
    return [
        'class' => 'yii\db\Connection',
        'schemaMap' => [
            'mysql' => '\amoydavid\Yii2LockableQuery\mysql\Schema', // set up mysql schema
        ],
        'dsn' => 'mysql:host=localhost;dbname=yii',
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
    
        // Schema cache options (for production environment)
        //'enableSchemaCache' => true,
        //'schemaCacheDuration' => 60,
        //'schemaCache' => 'cache',
    ]; 
    

    Extend your ActiveRecord class via \amoydavid\Yii2LockableQuery\ActiveRecord

    /**
     * Class Sample
     * @package common\models
     *
     */
    class Sample extends \amoydavid\Yii2LockableQuery\ActiveRecord { ... }
    
    

    Use model locks in transaction.

    $dbTransaction = $model->getDb()->beginTransaction();
    try {
        $model = Sample::find()->where(['id'=>1])->forUpdate()->one();
        $dbTransaction->commit();
    } catch(\Exception $e) {
        $dbTransaction->rollBack();
        throw $e;
    }
    
    

    Licence

    MIT

    Links

助理 等级规则
115/200
资料完整度
50/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

0

Ta的访客

0