public static function getAgent($name) { if (!self::hasAgent($name)) { $scheme = self::scheme($name); $data = self::parseScheme(is_array($scheme) ? $scheme : [$scheme]); $data = array_merge(self::config($name), $data); $className = $data['agentClass'] ?: 'Toplan\\PhpSms\\' . $name . 'Agent'; if (is_callable($data['sendSms']) || is_callable($data['voiceVerify'])) { self::$agents[$name] = new ParasiticAgent($data); } elseif (class_exists($className)) { self::$agents[$name] = new $className($data); } else { throw new PhpSmsException("Dont support [{$name}] agent."); } } return self::$agents[$name]; }
public function testGetAgent() { $agent = Sms::getAgent('Log'); $this->assertInstanceOf('Toplan\\PhpSms\\LogAgent', $agent); $luosimao = Sms::getAgent('Luosimao'); $this->assertInstanceOf('Toplan\\PhpSms\\LuosimaoAgent', $luosimao); }