evoweb / anonymized-export
导出匿名数据表
此包的官方仓库似乎已不存在,因此该包已被冻结。
1.0.4
2021-01-25 11:14 UTC
Requires
- php: >=5.4.0
- arrilot/data-anonymization: ^1.0.3
- fakerphp/faker: ^1.10
README
导出匿名数据
与第三方合作时,有时需要提供示例数据,例如调试错误。这些数据绝对不能包含机密数据。为此,此导出使用 arrilot/data-anonymization 和 fzaninotto/Faker。
前者提供了一个方便的 API,用于定义哪些表/字段应该被匿名化。后者则提供用于替换真实数据的值。
安装
-
确保 php PDO 可用
-
通过以下方式安装:
-
git clone https://github.com/evoWeb/anonymized-export.git && cd anonymized-export && composer install
-
mkdir anonymized-export && cd anonymized-export && composer require evoweb/anonymized-export
-
使用方法
工作流程
-
将 vendor/evoweb/anonymized-export/example.phpsh 复制到当前文件夹
-
为数据库转储创建一个文件夹并使用 $anonymizer->setExportPath() 进行配置 如果未设置文件夹,转储将存储在 ./vendor/evoweb/anonymized-export/dump/
-
输入您的数据库登录信息
-
如果您只想导出特定表,请使用 $anonymizer->addTablesToExport() 添加那些表。
如果没有添加任何表,则包括所有表。 -
在此文件中使用流畅 API 定义您想要如何匿名化数据。所有未配置但已添加的表将不会被匿名化。
-
确保它不通过 Web 等方式可访问。
-
每次需要时运行它。
导出所需的最小信息
#!/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!';