梦游者 / laravel-doctrine-entity-audit
SimpleThings EntityAudit 包的 Laravel 5+ 版本移植
0.7.3
2021-06-10 19:42 UTC
Requires
- php: >=7
- laravel-doctrine/orm: 1.*
Requires (Dev)
- laravel/framework: ^8.40
- mockery/mockery: ^0.9
- phpunit/phpunit: ^9.5
- symfony/var-dumper: ^4.3|^5.2
README
这是 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
- 当前仅适用于自增数据库
- 需要适当的元数据映射,允许禁用字段和关联的版本控制。
- 支持联合表继承
- 支持多对多审计