这是回购:https ://github.com/webostin/sf-case-study/tree/master/movie-invalidator
简短的应用说明
平台 Symfony。我们有电影实体。我们有用于缓存电影分页和电影本身的复杂缓存系统。我们有前端面板和后端面板。我们将用户实体附加到电影。我们也有管理实体。
问题
我们需要软删除电影,同时重置缓存和发送电子邮件。我们必须在三个(或将来更多)上下文中实现它:
- 前端用户删除附加到他的电影。操作:软删除、重置缓存、向管理员发送电子邮件;
- 管理员删除电影。操作:软删除、缓存重启、向用户发送电子邮件。
- 检查电影数据时的 Cron 会禁用电影。操作:软删除、重置缓存、向管理员和用户发送电子邮件
问题
这个特定示例中的最佳实践是什么。我找到了 3 个解决方案:分别实现所有内容(不好)、编写事件订阅者并在我想禁用电影时触发事件、编写服务并使用服务来禁用电影。这是最好的可读性和正确解决方案的问题。如果您有任何解决方案,请提供您的解决方案