gpt4 book ai didi

Symfony2 : Best place to put business logic

转载 作者:行者123 更新时间:2023-12-04 22:34:13 24 4
gpt4 key购买 nike

我读到一个好的做法有实体灯,只有 getter 和 setter。但是,例如,我有一些具有某些逻辑的自定义方法。

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
*/


}

将这种“更复杂的方法”放在哪里做:
//in controller
$product->calculatePrice()

//in twig templates
{{ product.calculatePrice }}

最佳答案

我喜欢将与实体相关的业务逻辑放在 Service 类中。 IMO,实体存储库应仅负责查询数据库以获取实体组的多个项目,或非常具体的“findBy”方法(例如:获取所有 Messages 属于 User 其中 isRead = 0 )。

很多时候,您会发现自己使用多个服务类来处理特定的业务逻辑 block ——将所有这些都保存在服务层中而不是硬塞到存储库中更容易(也更干净)。

将服务用于业务逻辑将导致代码更加模块化。如果您的 Product entity 和 repo 不包含任何业务逻辑(通常每个应用程序都非常具体),您可以更轻松地在其他项目中重用这些类,而无需进行太多清理。

关于Symfony2 : Best place to put business logic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11478465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com