arxy/gdpr-mysqldump

该包最新版本(dev-master)没有可用的许可证信息。

mysqldump 的替代品,可选地清洗 DB 字段以更好地符合 GDPR。

dev-master 2019-09-24 15:57 UTC

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 与选项 generatorarguments 和/或 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 与选项 passwordsaltColumn 一起使用。按照 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);