arxy / gdpr-mysqldump
mysqldump 的替代品,可选地清洗 DB 字段以更好地符合 GDPR。
Requires
- php: ~7.1
- ifsnop/mysqldump-php: ~v2.7
- symfony/options-resolver: ^3.0 || ^4.0
Requires (Dev)
- doctrine/doctrine-bundle: *
- doctrine/orm: *
- fzaninotto/faker: *
- symfony/phpunit-bridge: ^4.3
- symfony/symfony: ~3.4 | ~4.3
Suggests
- doctrine/orm: Required for SymfonyPasswordTransformer. Encodes password
- fzaninotto/faker: Required for FakerTransformer. Generates fake data.
This package is auto-updated.
Last update: 2024-09-25 04:12:27 UTC
README
services:
Arxy\GdprDumpBundle\Converter\DoctrineConverter:
arguments: ["@doctrine.orm.entity_manager"]
Arxy\GdprDumpBundle\Transformer\FakerTransformer: ~
Arxy\GdprDumpBundle\Transformer\StaticValueTransformer: ~
Arxy\GdprDumpBundle\Transformer\SymfonyPasswordTransformer: ~
arxy_gdpr_dump:
dsn: 'mysql://user:password@host:port/dbName'
value_converter: 'Arxy\GdprDumpBundle\Converter\DoctrineConverter' // optional
gdpr:
table_name:
column_name:
transformer: Arxy\GdprDumpBundle\Transformer\FakerTransformer
options:
generator: firstName
arguments: { 'gender': 'male' }
locale: en_US
转换器
转换器用于将数据库中的值转换为 PHP,反之亦然。(例如 - 将字符串 '2019-08-20 23:50:50' 转换为 \DateTime(''2019-08-20 23:50:50''))
可用的转换器
Arxy\GdprDumpBundle\Converter\DoctrineConverter - 使用 Doctrine 元数据进行值转换。
转换器
转换器用于将列的值转换为 GDPR 兼容。
可用的转换器
Arxy\GdprDumpBundle\Transformer\FakerTransformer 与选项 generator、arguments 和/或 locale 一起使用。有关所有可用的 generator/arguments 值,请参阅 https://github.com/fzaninotto/Faker。
Arxy\GdprDumpBundle\Transformer\JsonTransformer - 装饰另一个转换器。简单地将它的值 json_encode。
Arxy\GdprDumpBundle\Transformer\SerializeTransfoemr - 装饰另一个转换器。简单地将它的值 serialize。
Arxy\GdprDumpBundle\Transformer\StaticValueTransformer - 设置选项 value 的值。
Arxy\GdprDumpBundle\Transformer\SymfonyPasswordTransformer 与选项 password 和 saltColumn 一起使用。按照 Symfony 配置中 security 部分的说明对 password 进行编码。
您始终可以添加自己的转换器以满足您的需求。只需创建一个实现了 Arxy\GdprDumpBundle\Transformer 或扩展了 Arxy\GdprDumpBundle\AbstractTransformer 的类,并将其作为带有标签 arxy.gdpr_mysqldump.transformer 的 Symfony 服务注册。如果您使用的是具有自动注入和自动配置的 Symfony,您可能不需要做任何事情,只需创建类即可 - symfony 会处理其他事情。就是这样!
工作原理
首先从数据库中获取值。如果 ValueConverter 可用,则将其转换为 PHP 变量。然后调用 ValueTransformer。将返回的值传递给 ValueConverter(如果可用),将其转换为数据库值。
使用方法
使用类型提示 Ifsnop\Mysqldump\Mysqldump 并查看库的文档 https://github.com/ifsnop/mysqldump-php。
使用纯 PHP 配置和安装。
$valueTransformer = new \Arxy\GdprDumpBundle\ValueTransformer(); $valueTransformer->addTransformer(new \Arxy\GdprDumpBundle\Transformer\FakerTransformer()); $tableCustomers = new \Arxy\GdprDumpBundle\Metadata\TableMetadata("customers"); $tableCustomers->addColumn(new \Arxy\GdprDumpBundle\Metadata\ColumnMetadata("firstName", \Arxy\GdprDumpBundle\Transformer\FakerTransformer::class, [ 'generator' => 'firstName'])); $valueTransformer->addTableMetadata($tableCustomers); $mysqldump = new \Ifsnop\Mysqldump\Mysqldump($dsn, $user, $password, $dumpSettings, $pdoSettings); $mysqldump->setTransformColumnValueHook($transformValue);