evoweb/anonymized-export

导出匿名数据表

此包的官方仓库似乎已不存在,因此该包已被冻结。

1.0.4 2021-01-25 11:14 UTC

This package is auto-updated.

Last update: 2024-06-28 01:35:58 UTC


README

导出匿名数据

与第三方合作时,有时需要提供示例数据,例如调试错误。这些数据绝对不能包含机密数据。为此,此导出使用 arrilot/data-anonymization 和 fzaninotto/Faker。

前者提供了一个方便的 API,用于定义哪些表/字段应该被匿名化。后者则提供用于替换真实数据的值。

安装

  • 确保 php PDO 可用

  • 通过以下方式安装:

使用方法

工作流程

  1. 将 vendor/evoweb/anonymized-export/example.phpsh 复制到当前文件夹

  2. 为数据库转储创建一个文件夹并使用 $anonymizer->setExportPath() 进行配置 如果未设置文件夹,转储将存储在 ./vendor/evoweb/anonymized-export/dump/

  3. 输入您的数据库登录信息

  4. 如果您只想导出特定表,请使用 $anonymizer->addTablesToExport() 添加那些表。
    如果没有添加任何表,则包括所有表。

  5. 在此文件中使用流畅 API 定义您想要如何匿名化数据。所有未配置但已添加的表将不会被匿名化。

  6. 确保它不通过 Web 等方式可访问。

  7. 每次需要时运行它。

导出所需的最小信息

#!/usr/bin/env php
<?php

use Evoweb\AnonymizedExport\Blueprint;

require __DIR__ . '/vendor/autoload.php';

// Database connection information
$dsn = 'mysql:dbname=databasename;host=127.0.0.1';
$user = '';
$password = '';

$database = new \Evoweb\AnonymizedExport\Database\SqlDatabase($dsn, $user, $password);
$anonymizer = new \Evoweb\AnonymizedExport\Anonymizer($database);

// if the folder is not set the files are stored in ./vendor/evoweb/anonymized-export/dump/
//$anonymizer->setExportPath(__DIR__ . '/dump/');

// Define tables to export. (Default is to include all tables)
// $anonymizer->addTablesToExport(['table_a']);

$anonymizer->table('table_a', function (Blueprint $table) {
    // default is 'id'
    $table->primary('uid');

    $table->column('title')->replaceWith(function ($generator) {
        /** @var \Faker\Generator $generator */
        return $generator->text(255);
    });
});

$anonymizer->run();

echo 'Anonymization has been completed!';