我正在寻求澄清是否将代码放入控制器,实体或提供服务.
我有'cardset'和'card'对象(其中许多后者嵌入在前者MongoDB中),由普通的PHP类/对象表示.这些包含属性,例如'id','postal_address'.
我有一种生成卡片PDF的方法.目前我在'Card'对象中有这个,所以从我可以调用的Controller:
$card->makePDF()
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎很干净,但我怀疑我错了.
如果我将所有逻辑放在控制器中,这些逻辑变得冗长且难以操作,而且我不确定控制器是否可以作用于我的对象的方法.那是什么服务?
试图总结一下:如果一个对象知道它可以做"自己"的所有常规事物并将它们作为成员函数包含在其中,或者其他地方的方法应该通过该对象来进行操作.如果是这样,那些方法应该保留在哪里?
我很确定它不是'存储库',因为它似乎有助于检索/存储实体.
谢谢!