task
通过加载器加载并返回一个task的代理。
函数原型
/**
* 获取一个task
* @param $task
* @return mixed|null|TaskProxy
* @throws SwooleException
*/
public function task($task)
其中$task是Task的类名,根据SD的传统该类优先在app/Tasks中寻找,如果不存在则在Server/Tasks中寻找。
例子:
public function test_task()
{
$testTask = $this->loader->task('TestTask');
$testTask->test();
$testTask->startTask(null);
}
需要注意$this->loader->task('TestTask')返回的并不是TestTask的实例,其实返回的是一个TaskProxy,这个TaskProxy是个单例模式,所以调用task的时候不要对TaskProxy缓存,随时用随时获取。
TestTask有个test方法,虽然说$testTask是个TaskProxy,但你可以把他当做是TestTask调用方法。
TaskProxy和Task的更加深入的用法见具体章节。