【问题标题】:Entity-specific functions in Symfony2Symfony2 中的实体特定函数
【发布时间】:2011-09-23 20:01:29
【问题描述】:

在我的 Symfony2 项目中,我有一个 ModelBundle 来保存我的实体,以及用于前端、后端等的其他捆绑包,它们使用该 ModelBundle。

我有几个特定于模型的函数来执行一些特定于实体的任务。 我把这些放在哪里?

  1. 我是否在我的实体文件夹旁边创建一个单独的“模型”文件夹,以及 把所有这些功能都放在那里?
  2. 我是否在我的“ModelBundle”中创建一个控制器来保存这些 作为动作起作用?这可能很奇怪,因为控制器,在我的 请注意,接受 HTTP 请求并返回 HTTP 响应,所以它不是 适用于这种情况。
  3. 我是否将它们放在实体类本身中?这好看吗? 当我重新生成时,它们是否有可能被覆盖 我的 ORM?
  4. 我在寻找自定义存储库吗?我可以制作这些并将它们放入“模型”文件夹或其他东西中。 http://www.doctrine-project.org/docs/orm/2.0/en/reference/working-with-objects.html#custom-repositories

P.S.:我喜欢 Symfony2,但是当每个人都有一套明确的框架最佳实践时,我会很高兴 :-)

【问题讨论】:

    标签: coding-style symfony bundles


    【解决方案1】:

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

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

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

    我不喜欢认为模型类和实体类应该不同。恕我直言,这是不必要的抽象级别。

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

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

    我希望这会有所帮助,但如果您有任何问题,请发布您希望完成的更多详细信息。

    【讨论】:

    • 感谢 m8,它确实是用于根据特定标准查找实体,所以自定义 repo 就是这样。我已将它们放入“存储库”文件夹中。到目前为止,它似乎成功了 :) 感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    相关资源
    最近更新 更多