梦游者/laravel-doctrine-entity-audit

SimpleThings EntityAudit 包的 Laravel 5+ 版本移植

0.7.3 2021-06-10 19:42 UTC

This package is auto-updated.

Last update: 2024-09-20 01:26:47 UTC


README

GitHub Actions Build Status Issues License PHP Version Current Version

这是 SimpleThings EntityAudit 项目的分支,重写了以适配 Laravel 和 Laravel-Doctrine 包。它保持了相同的工作风格,为所有标记的实体生成修订版。

需要基于 Symfony 的版本?请查看原始的 SimpleThings EntityAudit

为了避免冲突,已经重新命名空间并更改了一些内部结构。

安装

  • composer require somnambulist/laravel-doctrine-entity-audit
  • 在 config/app.php 中 Doctrine 提供者之后添加 ServiceProvider
  • ./artisan vendor:publish
  • 更新配置文件然后生成审计表
    • ./artisan doctrine:migrations:diff
    • ./artisan doctrine:migrations:migrate

配置 UserResolver

可以通过实现 UserResolverInterface 并将其绑定到 AppServiceProvider 容器中,用另一种实现替换 UserResolver 实现方式。这需要在注册期间进行,而不是在启动时。

或者:可以在运行时通过从实体管理器的 AuditRegistry 访问 AuditConfiguration 来替换 UserResolver,并设置新的解析器实例。

use Somnambulist\EntityAudit\AuditRegistry;

$app->get(AuditRegistry::class)->get(/* $emName */)->getConfiguration()->setUserResolver($resolver);

如果没有指定实体管理器的名称,将选择默认值。请注意,配置与 AuditReader 共享。建议尽早以这种方式设置 UserResolver,最好在加载和修改任何实体之前,以避免用户解析问题。

单元测试

已将现有的单元测试移植过来,除了 Gedmo 软删除外。要运行单元测试,请确保已安装 dev 依赖项。

  • vendor/bin/phpunit

待办事项

  • 重构和简化监听器内部结构
  • 移除任何剩余的已弃用 Doctrine API 调用

来自 SimpleThings

  • 当前仅适用于自增数据库
  • 需要适当的元数据映射,允许禁用字段和关联的版本控制。
  • 支持联合表继承
  • 支持多对多审计

链接