Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- interface Messenger
- {
- public function sendMessage(string $recipient, string $message): void;
- }
- class SlackMessenger implements Messenger
- {
- public function sendMessage(string $recipient, string $message): void
- {
- app(Slack::class)->send($recipient, $message);
- }
- }
- class TwilioMessenger implements Messenger
- {
- public function sendMessage(string $recipient, string $message): void
- {
- app(Twilio::class)->sendSMS($recipient, $message);
- }
- }
- // AppServiceProvider::register()
- App::tag([SlackMessenger::class, TwilioMessenger::class], Messenger::class);
- // somewhere in your application
- $messengers = app()->tagged(Messenger::class);
- foreach ($messengers as $messenger) {
- $messenger->sendMessage($recipient, $message);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement