cusodede/yii2-history

ActiveRecord模型所有变更的历史记录

1.1.3 2023-04-07 07:13 UTC

This package is auto-updated.

Last update: 2024-09-07 10:27:16 UTC


README

ActiveRecord模型所有变更的历史记录

Build Status

安装

此扩展的最佳安装方式是通过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