persist, flush как то можно узнать что данные были измененены? Я делаю выборку из таблицы, потом в нескольких местах могу её менять или не менять. Чтобы в нескольких местах не ставить переменные и их инициализацию, может как то можно перед flush понять что изменения есть?
https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/events.html#onflush
$em->getUnitOfWork()->size(); не подойдёт?
RTFM. The size of a Unit of Work mainly refers to the number of managed entities at a particular point in time.
что за переменные в нескольких местах и зачем знать поменялось ли что-то?
надо мёрджить данные из базы и из стороннего сервиса раз в сутки. нужен нотификатор, что процесс отработал и данные смёрджились. чтобы избежать ситуации: вычитали данные из базы, а из сервиса вычитать не получилось. клиент думает что всё хорошо, а по факту в базе не верные данные. соответственно если мы понимаем что перед записью в базу у нас был набор измененных данных, значит как минимум сервис мы опросили, и данные смерджили.
а тот код, который опрашивает внешний сервис - он сам не может сообщать успешно ли мы опросили сервис или всё наебнулось?
Судячи по опису, хочуть костиль, і використовувати diff з doctrine )
а если мы сервис опросили успешно, но так случилось, что ничего не изменилось - такое ж тоже по идее возможно? а если идти через UnitOfWork - будет выглядеть будто всё пропало
не, хотят понимать всё ли ок, но почему-то именно доктрина должна сообщать всё ли ок с внешним сервисом
Задача зрозуміла, але реалізація через uow костиль )
я бы не сказал костыль) это просто неверное решение))
Т - Толерантність )
Может, но как написал выше - это в нескольких местах надо добавлять код. Хотел попроще - чекать доктрину перед flush, если возможно такое
делай как хочешь но как минимум два человека тебе сказали, что это хуёвое решение
Ок, спасибо, я поэтому и спрашиваю как лучше
Обсуждают сегодня