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
时间: 2024-08-02 17:55:26