<?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.}
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号