[李景山php]每天laravel-20160830|CallQueuedHandler
2016-06-15 08:57
477 查看
<?php namespace 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实现适用于文件内容操作的分页类
- php实现图片上传时添加文字和图片水印技巧
- 学习PHP session的传递方式
- 浅析PHP中的i++与++i的区别及效率
- yii中延迟加载模块
- Day1-php 语言概述
- Day2-php 变量的声明
- Day4-php 字符串 定界符
- Day5- php 特殊类型 资源 NULL
- YII 1 开启调试模式以及导入第三方调试插件yii-debug-toolbar
- YII安装步骤(windows)
- php语法学习:轻松看懂PHP语言
- YII1.1 批量插入数据
- PHP配合Cross-Origin Resource Sharing实现跨域
- 五个最佳FTP客户端工具
- 【RESTful】Yii2实现RESTful架构配置最佳实践