我试图了解域对象、数据映射器和服务的结构,但是我很难准确地掌握去哪里。
这个问题非常相似,但没有帮助的答案。
需要来自多个对象的属性的方法是否应该进入;
- 域对象,或
- 服务类,或
- 两者都不...
我担心创建一个繁重的 Service 类,但这种方法似乎比编辑 DO 和 DataMapper 更简单,否则我需要。
final class UserService extends ServiceAbstract
{
public function user_is_admin($id)
{
// Build the user object
$userMapper = $this->dataMapperFactory->build('user');
$user = $this->domainObjectFactory->build('user');
$user->id = $id;
$userMapper->fetch($user);
// Build the admin usergroup object
$usergroup = $this->domainObjectFactory->build('usergroup');
$usergroupMapper = $this->dataMapperFactory->build('usergroup');
$usergroup->id = ADMIN_USERGROUP_ID;
$usergroupMapper->fetch($usergroup);
// Perform the actual check
if(in_array($user->id, $usergroup->aMembers))
{
return true;
}
}
}