[李景山php]每天laravel-20160905|Dispatcher-5

    /**
     * Fire an event and call the listeners.
     *
     * @param  string|object  $event
     * @param  mixed  $payload
     * @param  bool  $halt
     * @return array|null
     */
   //
    public function fire($event, $payload = [], $halt = false)
    {// fire means to start
       // call listeners
        // When the given "event" is actually an object we will assume[like] it is an event
        // object and use the class as the event name and this event itself as the
        // payload to the handler, which makes object based events quite simple.
        if (is_object($event)) {// determine is a object
            list($payload, $event) = [[$event], get_class($event)];
        }// set this as list function
       // now i love this function

        $responses = [];// prepare listener

        // If an array is not given to us as the payload, we will turn it into one so
        // we can easily use call_user_func_array on the listeners, passing in the
        // payload to each of them so that they receive each of these arguments.
        if (! is_array($payload)) {
            $payload = [$payload];// be array
        }// if it is a array

        $this->firing[] = $event;// set this firing listener

        if (isset($payload[0]) && $payload[0] instanceof ShouldBroadcast) {
            $this->broadcastEvent($payload[0]);
        }

        foreach ($this->getListeners($event) as $listener) {
           // use a function to return big array and list loop it
            $response = call_user_func_array($listener, $payload);// cal_user_func_array
// get response
            // If a response is returned from the listener and event halting is enabled
            // we will just return this response, and not call the rest of the event
            // listeners. Otherwise we will add the response on the response list.
            if (! is_null($response) && $halt) {
                array_pop($this->firing);// if null array_pop it

                return $response;// return it
            }// add response on the response list

            // If a boolean false is returned from a listener, we will stop propagating
            // the event to any further listeners down in the chain, else we keep on
            // looping through the listeners and firing every one in our sequence.
            if ($response === false) {
                break;
            }// if response is null

            $responses[] = $response;// otherwise
        }

        array_pop($this->firing);// pop it

        return $halt ? null : $responses;
    }
时间: 2024-11-06 03:53:40

[李景山php]每天laravel-20160905|Dispatcher-5的相关文章

[李景山php]每天laravel-20160920|Writer-2

    //2016-07-20     /**      * Register a file log handler.      *      * @param  string  $path      * @param  string  $level      * @return void      */     public function useFiles($path, $level = 'debug')     {         $this->monolog->pushHandle

[李景山php]每天laravel-20160902|Dispatcher-2

/**  * Register an event listener with the dispatcher.  *  * @param  string|array  $events  * @param  mixed  $listener  * @param  int  $priority  * @return void  */ public function listen($events, $listener, $priority = 0) {// Register an event liste

[李景山php]每天laravel-20160831|EventServiceProvider

<?php namespace Illuminate\Events; use Illuminate\Support\ServiceProvider; class EventServiceProvider extends ServiceProvider {// Event Service Provider extends Service Provider     /**      * Register the service provider.      *      * @return void

[李景山php]每天laravel-20160901|Dispatcher-1

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 Illu

[李景山php]每天laravel-20161112|Factory-3.php

    /**      * Parse a class based composer name.      *      * @param  string  $class      * @param  string  $prefix      * @return array      */     protected function parseClassEvent($class, $prefix)     {//Parse a class based composer name.      

[李景山php]每天laravel-20161110|Factory.php

<?php namespace Illuminate\View; use Closure; use Illuminate\Support\Arr; use Illuminate\Support\Str; use InvalidArgumentException; use Illuminate\Contracts\Support\Arrayable; use Illuminate\View\Engines\EngineResolver; use Illuminate\Contracts\Event

[李景山php]每天laravel-20161111|Factory-2.php

    /**      * Get the evaluated view contents for the given view.      *      * @param  string  $view      * @param  array   $data      * @param  array   $mergeData      * @return \Illuminate\Contracts\View\View      */     public function make($vie

[李景山php]每天laravel-20161021|Request.php-2

/**  * Determine if the current request URL and query string matches a pattern.  *  * @param  mixed  string  * @return bool  */ public function fullUrlIs() {// check string like URL     $url = $this->fullUrl();     foreach (func_get_args() as $patter

[李景山php]每天laravel-20160908|Dispatcher-8

    /**      * Create the class based event callable.      *      * @param  string  $listener      * @param  \Illuminate\Container\Container  $container      * @return callable      */     protected function createClassCallable($listener, $container)

[李景山php]每天laravel-20160903|Dispatcher-3

   /**     * Setup a wildcard listener callback.     *     * @param  string  $event     * @param  mixed  $listener     * @return void     */    protected function setupWildcardListen($event, $listener)    {        $this->wildcards[$event][] = $this->