Лучший выбор PHP Symfony для отключения фильма

Вот репо: https://github.com/webostin/sf-case-study/tree/master/movie-invalidator

Краткое описание приложения

Платформа Symfony. У нас есть фильм Entity. У нас есть сложная система кеширования для разбивки на страницы фильмов и самих фильмов. У нас есть панель внешнего интерфейса и панель внутреннего интерфейса. У нас есть пользовательский объект, прикрепленный к фильму. У нас также есть Admin Entity.

проблема

Нам нужно мягко удалить Movie и одновременно сбросить кеш и отправить письмо. Мы должны сделать это в трех (или в будущем) контекстах:

  1. Пользователь внешнего интерфейса удаляет прикрепленный к нему фильм. Действие: мягкое удаление, сброс кеша, отправка письма администратору;
  2. Админ удаляет фильм. Действие: мягкое удаление, перезапуск кэша, отправка электронной почты пользователю.
  3. Крон при проверке данных фильма отключает фильм. Действие: мягкое удаление, сброс кеша, отправка писем администратору и пользователю

Вопрос

Какова лучшая практика в этом конкретном примере. Я нашел 3 решения: реализовать все по отдельности (не очень хорошо), написать подписчик на событие и вызвать событие всякий раз, когда я хочу отключить Movie, написать службу и использовать Service для отключения Movie. Это вопрос для лучшего читаемого и правильного решения. Пожалуйста, предоставьте ваши решения, если у вас есть

1 ответ

Отметьте, чтобы удалить фильм на первом этапе. В этом случае вам не нужно выгружать кеш (вы увидите предупреждающее сообщение в интерфейсе). На втором шаге администратор подтверждает удаление и добавляется в очередь для cron. третий шаг - удалить cron, отправить электронное письмо и очистить кеш. Таким образом вся нагрузка катится на кроне.

Другие вопросы по тегам