脚本宝典收集整理的这篇文章主要介绍了php – 多服务层和数据库事务,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
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);
交易逻辑应该在哪里?
事务是数据库连接的全局事务.除非您的RDBMS本身支持嵌套事务,并且您的DB API公开嵌套事务,否则您可能会遇到异常.
有关详细信息,请参阅我对How do detect that transaction has already been started?的回答
由于您使用的是PHP,因此您的交易范围最多只是一个请求.所以你应该只使用容器管理的事务,而不是服务层transa.也就是说,在处理请求开始时启动事务,并在完成处理请求时提交(或回滚).
如果需要回滚的异常发生在嵌套的ORM操作中,那么请使用Exception将其冒泡,然后让容器(即您的PHP操作控制器)处理它.
以上是脚本宝典为你收集整理的php – 多服务层和数据库事务全部内容,希望文章能够帮你解决php – 多服务层和数据库事务所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。