Я рассматриваю шаблон SplObserver как способ решения проблемы ведения журнала (а именно, как вы обрабатываете ведение журнала событий без его реализации непосредственно в интересующих вас классах и, следовательно, вставляете в них код, который не является напрямую связанные с их сферой ответственности).Проблемы с уведомлением SplObserver
Проблема заключается в том, что, как реализовано, SplObserver, похоже, не предоставляет вам какого-либо стандартизованного механизма уведомления класса для отправки каких-либо деталей в класс наблюдения, кроме «Я запускаю уведомление».
Мне было любопытно узнать, как другие люди справляются с этой проблемой, расширяют ли они интерфейсы SplObserver и SplSubject или откатывают свои собственные?
Я также думал, что в более общих терминах (как и в других функциях, которые могут быть реализованы с помощью наблюдателей, а не в обязательном порядке), если было возможно реализовать шаблон Observer, в котором наблюдатель может указать его, он хочет только получить уведомление о определенные события, а не каждое событие, которое может генерировать субъект. Например, мне может потребоваться, чтобы наблюдатель журналов записывал всю активность в файл журнала, а также наблюдатель с сообщением об ошибке, отправляющий электронное письмо администратору при возникновении ошибки, но только при возникновении ошибки. Вы можете написать журнал ошибок, чтобы игнорировать уведомления, которые не вызываются ошибкой (при условии, что можно изменить этот шаблон, чтобы можно было отправлять определенные виды уведомлений), но я подозреваю, что это будет менее эффективно, чем идеальный. Я подозреваю, что позволить наблюдателям только подписываться на конкретные тематические события будет лучше, но может ли этот подход быть реализован с помощью SplObserver?
Некоторое время назад с просьбой. Я отметил это как фаворит, потому что меня заинтересовал потенциальный ответ. Вы достигли своего собственного решения? –
Пока что. Это на заднем плане. – GordonM