Шаблон проектирования PHP для проверки того, должен ли быть выполнен класс

Шаблон проектирования PHP для проверки того, должен ли быть выполнен класс

25.06.2020 03:03:10 Источник

Я разработал приложение на основе Laravel, которое рассылает различные электронные письма, такие как информирование пользователей о новых заданиях, а также о новых сообщениях.

Я создал все необходимые классы Почты. Теперь мы хотим создать столбец базы данных, который позволит отдельным пользователям устанавливать, хотят ли они получать эти уведомления по электронной почте или нет.

Когда пользователь выполняет действие, которое обычно отправляет электронное письмо, я хочу, чтобы система проверила, хочет ли пользователь получать эти электронные письма на основе своих настроек в базе данных. Я не хочу оборачивать все звонки на электронную почту, в коде, с ненужными функциями if().

Есть ли предпочтительный шаблон дизайна, который я мог бы использовать для обработки этого?

У вопроса есть решение - Посмотреть?

Ответы - Шаблон проектирования PHP для проверки того, должен ли быть выполнен класс / PHP Design Pattern for checking if a class should be executed

dehart

25.06.2020 03:27:28

Это называется фасадный узор: https://en.wikipedia.org/wiki/Facade_pattern

  • Расширение объекта Laraval PendingMail
  • Переопределите функцию send(), чтобы вызвать parent::send() только в том случае, если ваше условие if() выполнено
  • Сделайте так, чтобы Mail::to() вернул вашу расширенную версию

У Laravel есть некоторая документация о том, как это сделать здесь: https://lumen.laravel.com/docs/7.x/mail

Закрыть X