namespace Illuminate\Events;
use Exception;
use ReflectionClass;
use Illuminate\Support\Str;
use Illuminate\Container\Container;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
use Illuminate\Contracts\Events\Dispatcher as DispatcherContract;
use Illuminate\Contracts\Container\Container as ContainerContract;
// use namespace
class Dispatcher implements DispatcherContract
{// a Dispatcher implements Dispatcher Contract
/**
* The IoC container instance.
*
* @var \Illuminate\Contracts\Container\Container
*/
protected $container;// The Ioc container instance.
/**
* The registered event listeners.
*
* @var array
*/
protected $listeners = [];// listeners be registered
/**
* The wildcard listeners.
*
* @var array
*/
protected $wildcards = [];// The wildcard listeners. like store
/**
* The sorted event listeners.
*
* @var array
*/
protected $sorted = [];// The sorted event listeners.
/**
* The event firing stack.
*
* @var array
*/
protected $firing = [];//The event firing stack.
/**
* The queue resolver instance.
*
* @var callable
*/
protected $queueResolver;// The queue resolver instance.
// at last ,we find to instance ,some listeners
/**
* Create a new event dispatcher instance.
*
* @param \Illuminate\Contracts\Container\Container|null $container
* @return void
*/
// dispathcer is use to make it like you want
public function __construct(ContainerContract $container = null)
{
$this->container = $container ?: new Container;
}// ContainerContract is $contanier
[李景山php]每天laravel-20160901|Dispatcher-1
最新推荐文章于 2024-05-15 09:45:19 发布