gpt4 book ai didi

php - 数据映射器+观察者模式

转载 作者:可可西里 更新时间:2023-11-01 12:58:18 25 4
gpt4 key购买 nike

我正在用 PHP 构建一个应用程序,并且正在使用数据映射器模式进行数据库访问。我正在考虑使用观察者模式让我的所有映射器观察它们创建的实体,这样它们就可以自动将任何更改保存回数据库,而无需我手动解析它们。

我只是想知道这是个好主意,还是不好的做法等等?

我通常使用在层次结构中链接在一起的几个对象,目前必须手动将每个对象解析到它的映射器,这相当乏味,所以我只是想提出一个更好的解决方案。

谢谢, jack

最佳答案

对我来说绝对是个好主意。你在做什么类似于 Unit Of Work模式旨在跟踪您对映射对象所做的更改并在完成后提交(通常作为单个事务)。

我相信像 Outlet 这样的项目和 Repose在 PHP 中为您提供此功能并减轻一些映射痛苦,但我没有亲自使用过它们。

顺便说一句,听起来您的对象层次结构可能会受益于被视为 Aggregates如果你想下Domain Driven Design路径并从它带来的干净隔离中受益。

--

编辑:它看起来也像eZ Components具有功能相当齐全的 PHP ORM解决方案,和Doctrine 2.0也在以这种方式形成。

--

编辑 2:对于您正在讨论的问题,我不会查看 Propel 或 Creole。 Creole 不是 ORM,而是类似于 PDO 的 DB 抽象层 - 该项目现在正式“死亡”。 Propel 使用 ActiveRecord 模式,而不是 DataMapper 模式,因此您的领域对象最终承担了更多的持久责任,据我所知,它不包含工作单元设施。

关于php - 数据映射器+观察者模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/509566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com