我正在学习Symfony,我正试图弄清楚在实体上放置自定义操作的位置......
例如,如果我有一个实体Order,在哪里放$order->complete()?或者$order->sendToProduction(),$order->queueForDelivery()?
这些只是示例,我有复杂的实体,我必须对它们执行许多操作.
在控制器?
在实体?
在EntityController中?
还有什么?我必须创建服务吗?实用课程?
如果工作可以在一个信号实体内完成(当然它是关系)那么它应该放在那里.我的意思是,如果操作是关于改变实体的内部状态.
否则,如果这个工作需要使用像数据库这样的应用程序的其他部分,或者是在多个不相关的entite上执行,那么我建议使用服务.
这就是在哪里.服务基本上是一个可以做任何事情的类.使用Service容器,您可以将任何依赖项传递给它,因此它非常灵活且易于使用.
例如$order->queueForDelivery().这可能意味着一些不同的事情:
status到queued_for_delivery-那么它应该在Order实体类$order应该放在Queue那个是其他实体类中,那么它应该在Queue类中$queue->addOrder($order)| 归档时间: |
|
| 查看次数: |
1024 次 |
| 最近记录: |