cusodede / yii2-history
ActiveRecord模型所有变更的历史记录
Requires
- php: >=8.0
- pozitronik/yii2-badgewidget: ^2.0.0
- pozitronik/yii2-traits: ^1.0.0
- ramsey/uuid: ^4.0.0
- yiisoft/yii2: ^2.0.0
- yiisoft/yii2-queue: ^2.0.0
Requires (Dev)
- codeception/codeception: ^4.1
- codeception/module-asserts: ^1.3
- codeception/module-cli: dev-master
- codeception/module-db: ^1.1
- codeception/module-filesystem: ^1.0
- codeception/module-phpbrowser: ^1.0.0
- codeception/module-rest: 2.0.x-dev
- codeception/module-yii2: ^1.1
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^9.5
- vlucas/phpdotenv: ^5.4.1
- yiisoft/yii2-gii: dev-master
README
ActiveRecord模型所有变更的历史记录
安装
此扩展的最佳安装方式是通过composer。
运行
php composer.phar require cusodede/yii2-history "^1.0.0"
或在您的composer.json
文件的require部分添加
"cusodede/yii2-history": "^1.0.0"
。
需求
Yii2, PHP >= 8.0
使用方法
首先,运行模块迁移
php yii/migrate --migrationPath=@vendor/cusodede/yii2-history/migrations
将cusodede\history\behaviors\HistoryBehavior::class
连接到所有需要存储历史记录的ActiveRecord
模型
public function behaviors():array { return [ 'history' => [ 'class' => HistoryBehavior::class ] ]; }
如果您想获取用户界面或更改默认模块配置,您需要在应用程序配置中设置该模块
$config = [ ... 'modules' => [ 'history' => [ 'class' => HistoryModule::class, ] ], ... ]
模块配置
这里有所有模块参数及其默认值
$config = [ ... 'modules' => [ 'history' => [ 'class' => HistoryModule::class, 'params' => [ 'userIdentityClass' => Yii::$app->user->identityClass, 'viewPath' => '@vendor/cusodede/yii2-history/src/views/default' 'queue' => null, 'storeShortClassNames' => false ] ] ], ... ]
参数描述
userIdentityClass: null
|string
|callable
. 模块尝试将一些用户ID与每个历史记录一起存储,因此需要提供适当的用户身份对象。在大多数情况下,该对象已在框架中配置(可以通过Yii::$app->user
访问),但在某些情况下(如控制台应用程序)则不是。在某些情况下也可以覆盖,因此此选项很有用。
viewPath: string
. 模块具有基本的用户界面,用于导航历史记录。您可能希望为此提供自己的自定义界面,因此您可以在此处提供自定义视图的路径。
queue: null
|string
|array
. 使所有历史记录写入异步的正确方式是将它们推送到队列中。queue
参数允许您配置自己的模块队列。只需像全局配置一样进行配置即可。
$config = [ ... 'modules' => [ 'history' => [ 'class' => HistoryModule::class, 'params' => [ 'queue' => [ 'class' => Queue::class, ] ] ] ], ... ]
您还可以使用应用程序中已配置的任何队列。为此,只需提供字符串队列名称即可。
$config = [ ... 'components' => [ 'common-queue' => [ 'class' => Queue::class, ] ] 'modules' => [ 'history' => [ 'class' => HistoryModule::class, 'params' => [ 'queue' => 'common-queue' ] ] ], ... ]
如果跳过此参数或将参数设置为null,则所有写入都将同步进行,这可能会影响应用程序的速度。
storeShortClassNames: bool
. 一个实验性选项,允许只存储短类名而不是完全限定名称空间(例如:Users
而不是app\models\Users
)。
运行本地测试
将/tests/.env.sample
复制到/tests/.env
(如果需要,更改那里的变量)并运行一次composer install
,然后运行php vendor/bin/codecept run
(以执行测试)。
对于Docker环境,您只需执行docker-compose up -d --build
命令来构建应用程序容器,然后运行docker exec -it yii2_history_php /bin/bash
以在PHP容器中打开bash控制台。接下来,只需像上面写的那样做即可。
文档待办事项
- 历史记录格式;
- 历史标签;
- 历史小部件;
- 委托支持;
许可
GNU GPL v3.0