Мне просто интересно, как лучше всего обрабатывать транзакции через несколько слоев обслуживания. Уровни службы используют 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);
Где должна логика транзакции идти?
Gotcha, имеет смысл. Спасибо за ссылку, а также хорошие объяснения там. –