cwbit / cakephp-revisions
为 CakePHP 3 开发的版本跟踪插件。在 CakeFest2015 上开发。
dev-master
2015-05-30 13:51 UTC
Requires
- cakephp/cakephp: ~3.0
This package is not auto-updated.
Last update: 2024-09-14 15:42:34 UTC
README
CakePHP Revisions 插件(CakeFest 2015)
为 CakePHP 3.x 开发的插件,允许您跟踪应用程序中表(在实体级别)的版本更改
要求
安装
[使用 Composer]
将插件添加到项目中的 composer.json 文件 - 例如这样
{
"require": {
"cwbit/cakephp-revisions": "dev-master"
}
}
由于此插件在其自己的 composer.json 中设置了类型 cakephp-plugin,所以 Composer 会将其安装到您的 /plugins 目录(而不是通常的 'Vendor' 文件夹)。建议您将 /plugins/Revisions 添加到 cake 应用程序的 .gitignore 文件中。(为什么?请阅读此内容。)
[手动]
- 下载并解压仓库(请在此 git 页面上某个位置找到下载按钮)
- 将生成的文件夹复制到
plugins - 将您刚刚复制的文件夹重命名为
Revisions
[GIT 子模块]
在您的 app 目录中输入
git submodule add -b master git://github.com/cwbit/cakephp-revisions.git plugins/Revisions
git submodule init
git submodule update
[GIT 克隆]
在您的 plugins 目录中输入
git clone -b master git://github.com/cwbit/cakephp-revisions.git Revisions
启用插件
在 3.0 中,您需要在 config/bootstrap.php 文件中启用插件
Plugin::load('Revisions');
如果您已经使用了 Plugin::loadAll();,则此步骤不是必需的。
用法
将行为添加到您想要跟踪版本的所有表中
基本实现
基本实现将在实体上的任何字段被修改时触发。
public function initialize(){ parent::initialize(); $this->addBehavior('Revisions.Revisions'); }
WATCHed 实现
您还可以明确告诉插件仅在特定字段(如指定字段)被修改时触发版本控制。
public function initialize(){ parent::initialize(); $this->addBehavior('Revisions.Revisions', [ 'watch' => [ 'name', # trigger if, 'foo', # and only if, 'bar' # any of these fields are changed ], ]); }
IGNOREd 实现
您还可以明确告诉插件忽略对某些字段的修改。只有在至少有一个其他(非忽略的)字段已更改时,版本控制才会触发。
public function initialize(){ parent::initialize(); $this->addBehavior('Revisions.Revisions', [ 'ignore' => [ 'bigBlob', # only trigger if something 'created', # OTHER than these fields 'modified', # was changed ], ]); }
添加版本审查
该插件还提供了查看所有版本和恢复到任何指定时间点的功能。
要启用此功能,请将以下行添加并自定义任何视图
<?= $this->Element('Revisions.Revisions/index', [ 'id' => $entity->id, # replace with actual entity variable 'model' => 'examples', # replace with actual model 'limit' => 10, # optional ]);?>