insolita/yii2-arsync

此行为实现两个模型之间自动或手动同步数据,无需声明关系。此行为必须附加在主模型上。主要目的 - 将从更可靠的数据存储中同步很少修改的数据到经常访问的Redis存储;支持某些开发案例中的实际数据状态;

安装次数: 30

依赖项: 0

建议者: 0

安全: 0

星星: 1

关注者: 1

分支: 0

开放问题: 0

类型:yii2-extension

0.0.1 2016-05-12 16:02 UTC

This package is auto-updated.

Last update: 2024-09-11 16:17:52 UTC


README

此行为实现两个模型之间自动或手动同步数据,无需声明关系。此行为必须附加在主模型上。主要目的 - 将从更可靠的数据存储中同步很少修改的数据到经常访问的Redis存储;支持某些开发案例中的实际数据状态;

安装

安装此扩展的首选方式是通过 composer

运行以下命令:

php composer.phar require --prefer-dist insolita/yii2-arsync "*"

或者将以下内容添加到您的 composer.json 文件的 require 部分中:

"insolita/yii2-arsync": "*"

使用方法

扩展安装完成后,只需在代码中使用即可:查看代码中的更多示例

public function behaviors(){
    return [
       'ArSyncBehavior'=>[
       				'class'      => ArSyncBehavior::class,
       				'slaveModel' => \your\model\namespase\Slave::className(),
       				'slaveScenario'=>'sync',
       				'errorSaveCallback'=>function($slave){
                          Yii::error(VarDumper::export($slave->errors));
                          throw new InvalidConfigException('fail save ');
                    },
                    'errorDeleteCallback'=>function($slave){
                        Yii::error('fail delete '.$slave->getPrimaryKey());
                     },
       				'fieldMap' => [
       					'id'=>'id',
       					'title' => 'name',
       					'foo'   => 'foo',
       					'bar'   => 'bar',
       					'baz'   => function($master)
       					{
       						return $master->baz * 2;
       					},
       				],
       			]
    ];
}