/**
* Broadcast the given event class.
*
* @param \Illuminate\Contracts\Broadcasting\ShouldBroadcast $event
* @return void
*/
protected function broadcastEvent($event)
{// why use this function name is broadcast
// event class means event instance
if ($this->queueResolver) {// use this queueResolver function
$connection = $event instanceof 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
*/
public function getListeners($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 eventName
if (! 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
*/
protected function getWildcardListeners($eventName)
{
$wildcards = [];// getWildcardListeners() set the listener
foreach ($this->wildcards as $key => $listeners) {// foreach $this->wildcards as key
if (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
[李景山php]每天laravel-20160906|Dispatcher-6
最新推荐文章于 2024-09-14 17:41:03 发布