Php MVC编码点火器obj->;保存()或服务->;保存()

Php MVC编码点火器obj->;保存()或服务->;保存(),php,codeigniter,model-view-controller,Php,Codeigniter,Model View Controller,我正在使用Codeigniter,并试图将“模块”层分离为域对象和映射器/服务(我们称之为服务) 在我的控制器中,我调用映射器以获取用户: $user = service->fetchUser($id); 然后,服务创建一个user类型的新对象并填充它 return = new entities\User($array); 当我想保存我的对象时。我应该: $user->save(); $service->save($user); (我认为它看起来很好)然后从我的域对象类

我正在使用Codeigniter,并试图将“模块”层分离为域对象和映射器/服务(我们称之为服务)

在我的控制器中,我调用映射器以获取用户:

$user = service->fetchUser($id);
然后,服务创建一个user类型的新对象并填充它

return = new entities\User($array);
当我想保存我的对象时。我应该:

$user->save();
$service->save($user);
(我认为它看起来很好)然后从我的域对象类调用服务

或者我应该:

$user->save();
$service->save($user);
这清楚地将对象类与CRUD逻辑分开,但我认为它看起来不太好

是否有任何“最佳实践”或一个女巫是绝对正确的方法

谢谢你的帮助


(我在某某的第一个问题是温柔一点;)

我想,你应该做$server->saveUser($user),因为你从$service->fetchUser($id)获取一个用户,如果你想将保存过程附加到user对象,那么也许你也会将加载附加到用户,比如$user->load($id)和$user->save($user),希望这是有意义的。使用codeigniter框架不是很直观吗?戴夫:我想我坚持使用$service->save()基萨拉吉:嗯,我喜欢CI,但它并不完美。我想,你应该使用$server->saveUser($user),因为你从$service->fetchUser($id)获得了一个用户,如果你想把保存过程附加到用户对象上,那么也许你也会把加载附加到用户上,比如$user->load($id)和$user->save($user),希望这是有意义的。这不是违反了使用codeigniter框架的直觉吗?戴夫:我想我还是坚持使用$service->save()基萨拉吉:嗯,我喜欢CI,但它并不完美。