我最近使用此处介绍的方法将 Doctrine 2 集成到我的 ZF 应用程序中:
http://www.zendcasts.com/unit-testing-doctrine-2-entities/2011/02/
我真的很喜欢它的工作方式,但是我对这将如何影响我过去拥有模型和映射器的方式感到困惑。
让我通过一个例子来解释混淆,
假设我们有用户实体和购买,如 ZendCast 中给出的示例
现在我有 Doctrine 使用的这些实体
/library/ZC/Entity
User.php
Purchase.php
在我以前有
application/models/
User.php (Application_Model_User)
Purchase.php (Application_Model_Purchase)
在 application/models/ 的类中,我曾经编写作用于实体的函数(胖模型瘦控制器原理),例如,如果我想向用户发送电子邮件,我会在 Application_Model_User 中创建一个名为 sendMail 的方法。
现在我不确定是否可以向 /library/ZC/Entity 中的文件添加方法,或者这是否是一个好主意,因为 Doctrine 使用这些文件来管理数据库。
我宁愿有一个单独的模型文件,我也曾经有在多个模型上工作的映射器文件,例如,如果我想给所有非活动用户发送电子邮件,我会创建一个方法 emailInactiveUsers 到 Application_Model_UserMapper。
我现在该怎么做?
我也google了一下,我发现了这个:
它说
一个名为 Doctrine_Cli 的脚手架工具,可以非常快速地从数据库中创建模型
但是,我的 scripts/doctrine.php 文件中不存在命令“generate-models-db”。我不确定这是否是 Doctrine 在版本 2 中已停止支持的东西或什么。