首頁  >  文章  >  後端開發  >  [李景山php]每天laravel-20160830|CallQueuedHandler

[李景山php]每天laravel-20160830|CallQueuedHandler

WBOY
WBOY原創
2016-06-20 12:25:41737瀏覽

<?phpnamespace Illuminate\Events;use Illuminate\Contracts\Queue\Job;use Illuminate\Contracts\Container\Container;class CallQueuedHandler{// Call Queued Handler    /**     * The container instance.     *     * @var \Illuminate\Contracts\Container\Container     */    protected $container;// a container instance.    /**     * Create a new job instance.     *     * @param  \Illuminate\Contracts\Container\Container  $container     * @return void     */    public function __construct(Container $container)// this is a interface    {        $this->container = $container;// use this container that is Container    }    /**     * Handle the queued job.     *     * @param  \Illuminate\Contracts\Queue\Job  $job     * @param  array  $data     * @return void     */    public function call(Job $job, array $data)// do some thing for this job, handle the queued job.    {// Job $job is a interface , $data is a array,        $handler = $this->setJobInstanceIfNecessary(// set Job Instance if necessary            $job, $this->container->make($data['class'])        );// this handler will be make if it necessary       // $job, $this->container to make $data class        call_user_func_array(            [$handler, $data['method']], unserialize($data['data'])        );// call_user_func_array        if (! $job->isDeletedOrReleased()) {// if this job need be released or deleted            $job->delete();        }    }    /**     * Set the job instance of the given class if necessary.     *     * @param  \Illuminate\Contracts\Queue\Job  $job     * @param  mixed  $instance     * @return mixed     */    protected function setJobInstanceIfNecessary(Job $job, $instance)    {        if (in_array('Illuminate\Queue\InteractsWithQueue', class_uses_recursive(get_class($instance)))) {            $instance->setJob($job);        }// if in the necessary array data, we will set this job.        return $instance; // return this instance    }//set the job be instance of the given class, if necessary.!    /**     * Call the failed method on the job instance.     *     * @param  array  $data     * @return void     */    public function failed(array $data)    {        $handler = $this->container->make($data['class']);// make handler        if (method_exists($handler, 'failed')) {// if has this function , to use it            call_user_func_array([$handler, 'failed'], unserialize($data['data']));        }    }//call the failed method on the job instance.}


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn