【发布时间】:2012-02-15 05:03:09
【问题描述】:
我正在使用 symfony 1.4,并且对推进还很陌生。我正在查看由其他开发人员编写的新项目中的现有代码库。
通俗地说,将模型分为两个类,model 和 modelPeer 类的目的是什么?
我会假设一个获取业务类型数据,另一个代表更多的数据层,但在检查这两个类时我没有看到任何类型的区别。
任何帮助表示赞赏:)
【问题讨论】:
我正在使用 symfony 1.4,并且对推进还很陌生。我正在查看由其他开发人员编写的新项目中的现有代码库。
通俗地说,将模型分为两个类,model 和 modelPeer 类的目的是什么?
我会假设一个获取业务类型数据,另一个代表更多的数据层,但在检查这两个类时我没有看到任何类型的区别。
任何帮助表示赞赏:)
【问题讨论】:
只需将其视为行(模型)和表(对等)。很简单,但是在我这样解释之后,一些初学者得到了这个想法:)
【讨论】:
好吧,最好忘记 Peer 类。我的建议是永远不要使用它们——在 Propel2 中 Peer 类无论如何都会被删除。
然后,您只需要处理一个 ActiveRecord API(模型类)和一个 ActiveQuery API。
编辑:阅读 https://github.com/propelorm/Propel2/issues/36 以了解 Peers 处理的内容。作为开发人员,您应该不在这部分放置任何代码。 AR和AQ绰绰有余。
【讨论】:
doSelect。
MyPeer::TABLE_NAME 或MyPeer::COLUMN_NAME?我可以在不使用 Peer (MyPeer::getTableMap()) 的情况下获取表的相关 TableMap 吗?我之所以这样问,部分是因为调整我当前的编码以避免同行是很好的,但我目前认为有些情况是不可避免的。