rs/laravel-version-control

此包的最新版本(v1.1.0)没有可用的许可证信息。

为您的应用程序实现版本控制的基石。提供迁移、蓝图和基本模型。如果您仅使用本包中规定的VC模型和表结构,则可以使您的应用程序符合GxP标准。

v1.1.0 2024-04-16 17:04 UTC

This package is auto-updated.

Last update: 2024-09-16 18:14:57 UTC


README

此包提供基本模型,用于实现应用程序的版本控制。它还将满足GxP合规性要求。

安装

composer require rs/laravel-version-control

如果您希望调整安装,可以发布资产

php artisan vendor:publish 以查看发布选项,选择适当的选项发布此包的资产。

迁移

您应该设置迁移以遵循测试/Fixtures/database/migrations文件中看到的迁移。对于每个模型,将创建2个表:键(普通)表和版本历史表。

示例迁移

use Redsnapper\LaravelVersionControl\Database\Blueprint;
use Redsnapper\LaravelVersionControl\Database\Migration;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        $this->makeVcTables("users",function(Blueprint $table){
            $table->string('email')->unique();
            $table->string('password');
        },function(Blueprint $table){
            $table->string('email');
            $table->string('password');
        });
    }
}

注意我们正在使用自制的迁移和蓝图类。这将创建2个表:用户表和相应的用户版本表。第三个参数是可选的,将回退到第二个参数的字段。

版本控制模型

您创建的每个模型都应该扩展 Redsnapper\LaravelVersionControl\Models\BaseModel

use Redsnapper\LaravelVersionControl\Models\BaseModel;

class Post extends BaseModel
{
}

'Pivot' 表

Pivot表记录永远不会被销毁。在创建时,它们将作为项目生命周期的记录持久化。相反,每当一个记录被分离时,一个活动标志将被切换为false。

版本关系

可以通过模型的版本关系访问版本。

$model->versions();

匿名化

要为任何模型匿名化任何字段,请传递以下数组中要匿名化的字段。

$model->anonymize(['email'=>'anon@example.com']);

这将创建一个新版本进行操作,并将匿名化传递的字段。这将匿名化与此模型相关联的所有版本。