【发布时间】:2011-11-29 00:15:30
【问题描述】:
我正在我的 Zend Framework Web 应用程序中实现 Data Mapper 设计模式,一切顺利,我真的很喜欢在 Zend 中使用数据映射器,而不是仅应用 Row Gateway 模式,但我遇到了一个问题我的架构。我不确定如何使用我的数据映射器以 OOP 方式引用和使用外键约束。
所以我有我的模型类、我的 DbTable 类和我的 Mapper 类。我是否应该将所有外键关系放在我的 DbTable 类中,这样我可以使用findDependentRowset() 函数在我的映射器中检索,或者更好的方法是在我的映射器中实例化依赖类。使用 Data Mapper 模式映射外键的最佳 OOP 实践是什么?
【问题讨论】:
-
如果您有很多阻抗不匹配,请考虑使用 ORM,例如 Doctrine2。
-
我已经开始使用数据映射器实现项目,我遇到的唯一问题是处理外键映射,如果要实例化对象或让 DbTable 了解数据库架构
-
我的实现是这样的: Model - 和你说的一样,但是没有任何函数,只有 setter 和 getter 用于访问 Model 属性 DbTable - 这里没有函数,只有 Zend_Db_Table_Abstract 的子类并提供 id 和表 DataMapper 的名称 - 肉 - 在这里我拥有所有功能,我检索 DbTable 类并使用 Model 类设置属性我希望我的系统尽可能松散耦合,所以问题是我的外键我的应用程序中的关系
标签: php oop zend-framework datamapper