Symfony2中特定于实体的功能

时间:2011-09-23 20:01:29

标签: coding-style symfony bundles

在我的Symfony2项目中,我有一个ModelBundle,它包含我的实体,以及使用该ModelBundle的前端,后端等的其他包。

我有几个特定于模型的函数,可以执行某些特定于实体的任务。 我在哪里放这些?

  1. 我是否在我的Entity文件夹旁边创建了一个单独的'model'文件夹 将所有这些功能都放在那里?
  2. 我是否在我的'ModelBundle'中创建了一个包含这些控制器的控制器 作为行动?这可能是奇怪的,因为控制器,在我的 记住,接受HTTP请求并返回HTTP响应,所以事实并非如此 适用于此背景。
  3. 我是否将它们放在实体类中?这很好吗? 当我重新生成时,它们是否有可能被覆盖 我的ORM?
  4. 我在寻找自定义存储库吗?我可以制作这些并将它们放入“模型”文件夹或其他东西。 http://www.doctrine-project.org/docs/orm/2.0/en/reference/working-with-objects.html#custom-repositories
  5. P.S。:我喜欢Symfony2,但是当每个人都有一套明确的框架最佳实践时,我会非常高兴: - )

1 个答案:

答案 0 :(得分:1)

了解您计划编写的特定于模型的函数类型会很有帮助。

如果该功能适用​​于您已从数据库中获取的实体,则它属于实体类。

如果功能与根据特定条件查找实体或实体组有关,则它属于自定义存储库类。

我不认为模型类和实体类应该是不同的。恕我直言,这是一个不必要的抽象层次。

您认为此功能不属于控制器是正确的。

如果您使用自定义存储库,我建议将它们保存在“Entity”文件夹或“Repository”文件夹中。我个人保留在“实体”中,但这可能是长期使用Doctrine 1并被用于'Table'类的副作用。

我希望这会有所帮助,但如果您有任何疑问,请发布您希望实现的更多细节。