/** * Broadcast the given event class. * * @param \Illuminate\Contracts\Broadcasting\ShouldBroadcast $event * @return void */protectedfunctionbroadcastEvent($event) {// why use this function name is broadcast// event class means event instanceif ($this->queueResolver) {// use this queueResolver function$connection = $eventinstanceof ShouldBroadcastNow ? 'sync' : null;// determine this instance about$queue = method_exists($event, 'onQueue') ? $event->onQueue() : null;// determine method_exits$this->resolveQueue()->connection($connection)->pushOn($queue, 'Illuminate\Broadcasting\BroadcastEvent', [ 'event' => serialize(clone$event), ]);// good look bad use ,maybe } } /** * Get all of the listeners for a given event name. * * @param string $eventName * @return array */publicfunctiongetListeners($eventName) {// Get all of the listeners for a given event name.$wildcards = $this->getWildcardListeners($eventName);// get the wild card by eventsName use this function ,that name is cardlisters// first use eventNameif (! isset($this->sorted[$eventName])) { $this->sortListeners($eventName);// use this sort Listeners }// if isset eventsName never be sort ,return array_merge($this->sorted[$eventName], $wildcards);// array_merge } /** * Get the wildcard listeners for the event. * * @param string $eventName * @return array */protectedfunctiongetWildcardListeners($eventName) {$wildcards = [];// getWildcardListeners() set the listenerforeach ($this->wildcards as$key => $listeners) {// foreach $this->wildcards as keyif (Str::is($key, $eventName)) {// determine is a str$wildcards = array_merge($wildcards, $listeners); // get the array_merge } } return$wildcards; } // first get listener,second get the wildcard listener
The above introduces [Li Jingshan php] laravel-20160906|Dispatcher-6 every day, including the content. I hope it will be helpful to friends who are interested in PHP tutorials.