Symfony 2业务逻辑服务?

时间:2015-07-25 12:16:11

标签: php symfony doctrine-orm

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

据我所知,这将是服务领域,并且最好让控制器远离这样做。

我的问题是,如果我需要使用所有操作所需的方法创建一个类,然后从Controller调用它们,或者为每个Doctrine模型(OrderManager,LineManager ...)或东方创建一个Service类更多特定于任务(RecountTotal,FilterDate ...)但是使用最后一个方法我认为每个服务内部只有一个方法。

这是最佳做法?

1 个答案:

答案 0 :(得分:0)

你完全正确地指出这不是控制器的工作。

只使用一个管理员来包含所有数据访问方法是完全没问题的。

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

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

除非您有一些高级要求,否则不需要额外的过滤器和计数类。