matiux/broadway-sensitive-serializer

支持数据敏感化的序列化实现

v1.0.6 2024-03-29 11:18 UTC

README

check dependencies test codecov type coverage psalm level security analysis status coding standards status Packagist PHP Version Support Read the Docs (version)

该项目背后的想法是创建一个符合CQRS+ES系统的序列化器,特别是通过Broadway库来实现,以符合《通用数据保护条例》(GDPR),特别是关于被遗忘的权利。

普通Broadway事件负载

{
    "class": "SensitiveUser\\User\\Domain\\Event\\UserRegistered",
    "payload": {
        "id": "b0fce205-d816-46ac-886f-06de19236750",
        "name": "Matteo",
        "surname": "Galacci",
        "email": "m.galacci@gmail.com",
        "occurred_at": "2022-01-08T14:22:38.065+00:00"
    }
}

扩展激活时的负载示例

{
  "class": "SensitiveUser\\User\\Domain\\Event\\UserRegistered",
  "payload": {
    "id": "b0fce205-d816-46ac-886f-06de19236750",
    "name": "Matteo",
    "surname": "#-#2Iuofg4NKKPLAG2kdJrbmQ==:bxQo+zXfjUgrD0jHuht0mQ==",
    "email": "#-#OFLfN9XDKtWrmCmUb6mhY0Iz2V6wtam0pcqs6vDJFRU=:bxQo+zXfjUgrD0jHuht0mQ==",
    "occurred_at": "2022-01-08T14:22:38.065+00:00"
  }
}

存在symfony捆绑包以简化与框架的集成这里

阅读文档以获取更多信息。

安装

composer require matiux/broadway-sensitive-serializer

开发设置

git clone https://github.com/matiux/broadway-sensitive-serializer.git && cd broadway-sensitive-serializer
cp docker/docker-compose.override.dist.yml docker/docker-compose.override.yml
rm -rf .git/hooks && ln -s ../scripts/git-hooks .git/hooks

此存储库使用GitHub actions执行一些检查。如果您想本地测试操作,可以使用act。例如,如果您想检查静态分析的操作

act -P ubuntu-latest=shivammathur/node:latest --job static-analysis

与PHP容器交互

您可以通过makefile与PHP容器交互

一些用法

make upd
make enter
make phpunit
make psalm
make coding-standard-fix-staged
make build-php ARG="--no-cache"
make build-docs

查看所有选项这里

安装依赖项以运行测试或执行示例

make build-php ARG="--no-cache"
make upd
make composer ARG="install"

运行测试

make build-php ARG="--no-cache"
make upd
make phpunit

示例代码

阅读示例部分