rs / laravel-version-control
此包的最新版本(v1.1.0)没有可用的许可证信息。
为您的应用程序实现版本控制的基石。提供迁移、蓝图和基本模型。如果您仅使用本包中规定的VC模型和表结构,则可以使您的应用程序符合GxP标准。
v1.1.0
2024-04-16 17:04 UTC
Requires
- php: ^8.0
Requires (Dev)
- laravel/legacy-factories: ^1.4
- mockery/mockery: ^1.0
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.0
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']);
这将创建一个新版本进行操作,并将匿名化传递的字段。这将匿名化与此模型相关联的所有版本。