Toplan\PhpSms\Sms::initTask PHP Method

initTask() protected static method

Initialize the task.
protected static initTask ( )
    protected static function initTask()
    {
        foreach (self::scheme() as $name => $scheme) {
            //解析代理器数组模式的调度配置
            if (is_array($scheme)) {
                $data = self::parseScheme($scheme);
                $scheme = $data['scheme'];
            }
            //创建任务驱动器
            self::getTask()->driver("{$name} {$scheme}")->work(function ($driver) {
                $agent = self::getAgent($driver->name);
                $smsData = $driver->getTaskData();
                extract($smsData);
                $template = isset($templates[$driver->name]) ? $templates[$driver->name] : 0;
                if ($type === self::TYPE_VOICE) {
                    $agent->voiceVerify($to, $voiceCode, $template, $templateData);
                } elseif ($type === self::TYPE_SMS) {
                    $agent->sendSms($to, $content, $template, $templateData);
                }
                $result = $agent->result();
                if ($result['success']) {
                    $driver->success();
                }
                unset($result['success']);
                return $result;
            });
        }
    }