Для веб-сайта, над которым я работаю, я создал объект службы мультимедиа, который я использую как во внешней, так и во внутренней (CMS). Этот объект службы мультимедиа управляет мультимедиа в локальном хранилище (БД); он предоставляет возможность загружать / вставлять видео и загружать изображения.
Другими словами, посетители сайта могут сделать это в интерфейсе, но администраторы сайта также могут сделать это в интерфейсе.
Мне бы хотелось, чтобы этот сервис отправлял по почте администраторам, когда посетитель загрузил / внедрил новый носитель в веб-интерфейс, но воздерживался от их отправки по почте, когда они сами загружали / вставляли носитель в бэкэнд.
Поэтому я начал задаваться вопросом, является ли это хорошим случаем для передачи нулевого объекта, имитирующего функциональность почты, службе мультимедиа в бэкэнде. Я подумал, что это может пригодиться, когда они решат, что бэкэнд должен также реализовать функциональность почты.
В упрощенном виде я хотел бы сделать что-то вроде этого:
Frontend:
$mediaService = new MediaService( new MediaRepository(), new StandardMailService() );
Backend:
$mediaService = new MediaService( new MediaRepository(), new NullMailService() );
Как вы относитесь к этому? Имеет ли это смысл? Или я готовлюсь к проблемам в будущем?