Symfony 2业务逻辑服务



我目前正在使用Symfony 2开发一个简单的web应用程序,该应用程序处理带有产品和订单线的订单。实际上我有三个Doctrine实体(Product, Line和Order)。我将处理这些模型的数据,我需要按日期过滤,添加,删除,列出,并对所有数据进行一些管理操作。

据我所知,这将是服务领域,最好的做法是让控制器避免这样做。

我的问题真的是,如果我需要创建一个类的方法,我需要所有的操作,然后从控制器调用它们,或创建一个服务类为每个原则模型(OrderManager, LineManager…)或定向更多的任务特定(rettotal, FilterDate…)但是对于最后一个方法,我认为每个Service内部将只有一个方法。

这个的最佳实践是什么?

你说的完全正确,这不是控制器的工作。

只使用一个管理器来包含所有的数据访问方法是完全可以的。

class BaseManager { // Name it as you like
    ...
}

如果你发现自己对不同的实体有非常相似的方法,你可能想要分成不同的管理器(OrderManager, LineManager, ProductManager),并让它们扩展一个公共的BaseManager以减少代码重复。

过滤器和计数的额外类不应该是必要的,除非你有一些高级的要求。

最新更新