本文共 1753 字,大约阅读时间需要 5 分钟。
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 namespaceclass 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
转载于:https://blog.51cto.com/jingshanls/1789766