Blame | Letzte Änderung | Log anzeigen | RSS feed
<?phpnamespace Illuminate\Notifications\Channels;use Illuminate\Contracts\Events\Dispatcher;use Illuminate\Notifications\Events\BroadcastNotificationCreated;use Illuminate\Notifications\Messages\BroadcastMessage;use Illuminate\Notifications\Notification;use RuntimeException;class BroadcastChannel{/*** The event dispatcher.** @var \Illuminate\Contracts\Events\Dispatcher*/protected $events;/*** Create a new broadcast channel.** @param \Illuminate\Contracts\Events\Dispatcher $events* @return void*/public function __construct(Dispatcher $events){$this->events = $events;}/*** Send the given notification.** @param mixed $notifiable* @param \Illuminate\Notifications\Notification $notification* @return array|null*/public function send($notifiable, Notification $notification){$message = $this->getData($notifiable, $notification);$event = new BroadcastNotificationCreated($notifiable, $notification, is_array($message) ? $message : $message->data);if ($message instanceof BroadcastMessage) {$event->onConnection($message->connection)->onQueue($message->queue);}return $this->events->dispatch($event);}/*** Get the data for the notification.** @param mixed $notifiable* @param \Illuminate\Notifications\Notification $notification* @return mixed** @throws \RuntimeException*/protected function getData($notifiable, Notification $notification){if (method_exists($notification, 'toBroadcast')) {return $notification->toBroadcast($notifiable);}if (method_exists($notification, 'toArray')) {return $notification->toArray($notifiable);}throw new RuntimeException('Notification is missing toArray method.');}}