假设我有一个学说用户实体。每个用户都有一个化身,当然,在这些化身居住的网络服务器上有一个特定的文件夹。我的问题是:用户实体应该知道这个位置吗?
我目前正在将Avatar文件夹URL作为Symfony2中的参数存储。我将此参数注入树枝,以便树枝可以打印正确的URL。我还考虑将参数注入用户实体,例如因为删除用户时,我想让实体删除头像图像。多么不同的消息来源提到,学说实体只是Popo的(普通的旧PHP对象),并且将任何东西注入其中是不好的做法。
这表明我问题的答案是"否"。哪个提出了一个新问题:用户删除业务逻辑应该居住在哪里?这怎么知道阿凡达的位置?
我认为您可以使用所有这些业务逻辑的服务。
较短的解决方案是在用户实体中设置路径并在此处执行逻辑,因为您不需要任何外部服务来保存/删除用户头像文件,如下所示:http://symfony.com/doc/master/cookbook/doctrine/file_uploads.html