Код: Выделить всё
public function beforeAction($action): bool {
$transaction = Yii::$app->db->beginTransaction();
$this->on(self::EVENT_AFTER_ACTION, [$transaction, 'commit']);
return parent::beforeAction($action);
}
------------------------
Я говорил, что лучше транзакции применять "по месту требования". Например в экшне есть много много логики, валидации модели, своя кастомная валидация и ещё что-то, и вот только когда дело доходит действительно до БД, то там и оборачивать операции в транзакции.
Нормальная ли практика оборачивать весь экшн в транзакицю? Если да - то, какие плюсы (я вижу один плюс только в одном случае). Если нет - то почему и какие минусы (я могу придумать кучку, но хотелось бы увидеть от профессионалов)?