Привет, ребята!
Что то столкнулся с простой задачей - несколько операций по модификации данных в разных таблицах обернуть в транзакцию.
Вбиваю в доке (
https://symfony.com/doc/current/index.html) в строку поиска волшебное слово "transaction" и ... вижу описание более сложных кейсов с событиями и диспатчерами итд итп.
В более старой доке версии 2.7 нашел вариант использования транзакции при непосредственной работе с сущностями:
$em->getConnection()->beginTransaction(); // suspend auto-commit
try {
$user = new User; $user->setName('A');
$em->persist($user); $em->flush();
$em->getConnection()->commit();
} catch (Exception $e) {
$em->getConnection()->rollBack();
throw $e;
}
Уже лучше. Но что, если нужно обернуть в транзакцию не дейсвтия над entity, а вызов методов других сервисов?
Подскажите, пожалуйста, возможно ли это сделать в Symfony?