我只是想知道如何最好地处理跨多个服务层的事务.服务层使用ORM来存储和从数据库中检索.是否应该在各个服务层内知道和处理交易?或者它们应该由另一层处理?
例如:我有两个服务层供用户和客户使用.我想要:
1)创建并保存新客户端
2)创建并保存新用户
3)将该用户分配给客户端
所有这些都在一次交易中.
一个简单的例子可能如下所示:
$userManagementService = new UserManagementService;
$newUserData = array(...);
$newUser = $userManagementService->create($newUserData);
$clientManagementService = new ClientManagementService;
$newClientData = array(...);
$newClient = $clientManagementService->create($newClientData);
$userManagementService->assignUserToClient($newUser, $newClient);
交易逻辑应该在哪里?