rekalogika/reconstitutor

位于 Doctrine 事件之上的一层薄层,帮助你重新构造/填充你的实体。最常见的情况是处理文件上传,但也有许多其他用途。它允许你在简洁且表达性强的类中增强 Doctrine 的填充。

资助包维护!
priyadi

安装次数: 2,668

依赖者: 1

建议者: 0

安全: 0

星标: 4

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

1.3.3 2024-09-21 05:56 UTC

This package is auto-updated.

Last update: 2024-09-21 13:27:39 UTC


README

这个库提供了一层薄层,位于 Doctrine 事件之上,帮助你重新构造/填充你的实体。它允许你在简洁且表达性强的类中增强 Doctrine 的填充。

在 Doctrine 从数据库中填充一个对象之后,这个框架让你控制填充 Doctrine 没有处理的其他属性,而不必处理 Doctrine 事件和 Unit of Work 的特殊性。然后,在 Doctrine 将更改持久化到数据库后,它也允许你对这些属性进行类似操作。

这类任务最常见的案例是处理文件上传,其中已经编写了许多专门的库。但还有许多其他情况

  • 一个懒加载代理,通过 API 调用获取真实资源。
  • 链接由不同对象管理器管理的对象,或非 Doctrine 实体。

现在我们通常称这个过程为 填充重新构造 是 Eric Evans 在 "领域驱动设计:在软件核心处理复杂性" 中使用的术语。

功能

  • 在类中简单声明。你可以创建一个重新构造器类来处理特定实体类的重新构造,实现特定接口的实体,类层次结构中的实体,或具有特定 PHP 属性的实体。
  • 我们的抽象类提供了 get()set() 方法作为便利。它们让你可以直接操作属性,绕过获取器和设置器。这是重新构造的最佳实践,因为它让你在获取器和设置器中有业务逻辑的自由。
  • get()set() 方法是到 Symfony 的 PropertyAccessorInterface 的自定义实现的转发器。因此,你可以使用在 PropertyAccessorInterface 中定义的相同异常。
  • 它具有我们认为的正确行为。它要求你的重新构造器仅在 Doctrine 成功保存对象后保存。它不依赖于 Doctrine 在 flush() 之前看到对象被标记为脏。即你的实体不需要修改 Doctrine 管理的属性(如 $lastUpdated)——只是为了确保正确的 Doctrine 事件被触发。

文档

rekalogika.dev/reconstitutor

许可证

MIT

贡献

问题和拉取请求应提交到 GitHub 存储库 rekalogika/reconstitutor