Лучший выбор PHP Symfony для отключения фильма
Вот репо: https://github.com/webostin/sf-case-study/tree/master/movie-invalidator
Краткое описание приложения
Платформа Symfony. У нас есть фильм Entity. У нас есть сложная система кеширования для разбивки на страницы фильмов и самих фильмов. У нас есть панель внешнего интерфейса и панель внутреннего интерфейса. У нас есть пользовательский объект, прикрепленный к фильму. У нас также есть Admin Entity.
проблема
Нам нужно мягко удалить Movie и одновременно сбросить кеш и отправить письмо. Мы должны сделать это в трех (или в будущем) контекстах:
- Пользователь внешнего интерфейса удаляет прикрепленный к нему фильм. Действие: мягкое удаление, сброс кеша, отправка письма администратору;
- Админ удаляет фильм. Действие: мягкое удаление, перезапуск кэша, отправка электронной почты пользователю.
- Крон при проверке данных фильма отключает фильм. Действие: мягкое удаление, сброс кеша, отправка писем администратору и пользователю
Вопрос
Какова лучшая практика в этом конкретном примере. Я нашел 3 решения: реализовать все по отдельности (не очень хорошо), написать подписчик на событие и вызвать событие всякий раз, когда я хочу отключить Movie, написать службу и использовать Service для отключения Movie. Это вопрос для лучшего читаемого и правильного решения. Пожалуйста, предоставьте ваши решения, если у вас есть
1 ответ
Отметьте, чтобы удалить фильм на первом этапе. В этом случае вам не нужно выгружать кеш (вы увидите предупреждающее сообщение в интерфейсе). На втором шаге администратор подтверждает удаление и добавляется в очередь для cron. третий шаг - удалить cron, отправить электронное письмо и очистить кеш. Таким образом вся нагрузка катится на кроне.