Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. interface Messenger
  2. {
  3. public function sendMessage(string $recipient, string $message): void;
  4. }
  5.  
  6. class SlackMessenger implements Messenger
  7. {
  8. public function sendMessage(string $recipient, string $message): void
  9. {
  10. app(Slack::class)->send($recipient, $message);
  11. }
  12. }
  13.  
  14. class TwilioMessenger implements Messenger
  15. {
  16. public function sendMessage(string $recipient, string $message): void
  17. {
  18. app(Twilio::class)->sendSMS($recipient, $message);
  19. }
  20. }
  21.  
  22. // AppServiceProvider::register()
  23. App::tag([SlackMessenger::class, TwilioMessenger::class], Messenger::class);
  24.  
  25. // somewhere in your application
  26. $messengers = app()->tagged(Messenger::class);
  27. foreach ($messengers as $messenger) {
  28. $messenger->sendMessage($recipient, $message);
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement