我读到一个好的做法,实体很轻,只有吸气剂和制定者.但是我有一些带有某种逻辑的自定义方法.
public function calculatePrice(){
/*
Here I have to do many math operations
including access to other repositories to get
specific data (taxes, comissions, ect) from others entities
*/
}
Run Code Online (Sandbox Code Playgroud)
在哪里放置这种"更复杂的方法":
//in controller
$product->calculatePrice()
//in twig templates
{{ product.calculatePrice }}
Run Code Online (Sandbox Code Playgroud)
Ste*_*nte 11
我喜欢将业务逻辑与Service类中的实体相关联.IMO,实体存储库应该只负责查询数据库中实体组的多个项目,或者非常具体的"findBy"方法(例如:fetch all Messages属于Userwhere isRead = 0).
通常情况下,您会发现自己使用多个服务类来处理特定的业务逻辑块 - 将所有这些保留在服务层而不是将其保存到存储库中更容易(也更清晰).
使用业务逻辑服务将产生更多模块化代码.如果您的Product实体和存储库不包含任何业务逻辑(通常每个应用程序非常具体),您可以更轻松地在其他项目中重用这些类,而无需进行尽可能多的清理.
| 归档时间: |
|
| 查看次数: |
1290 次 |
| 最近记录: |