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);