<?php
namespace app\common\library\sms;
use think\Exception;
class Driver
{
private $config; private $engine; private $engineName;
public function __construct($config)
{
$this->config = $config;
$this->engineName = $this->config['default'];
$this->engine = $this->getEngineClass();
}
public function sendSms($msgType, $templateParams, $isTest = false)
{
if ($isTest === false
&& $this->config['engine'][$this->engineName][$msgType]['is_enable'] == '0') {
return false;
}
return $this->engine->sendSms($msgType, $templateParams);
}
public function getError()
{
return $this->engine->getError();
}
private function getEngineClass()
{
$classSpace = __NAMESPACE__ . '\\engine\\' . ucfirst($this->engineName);
if (!class_exists($classSpace)) {
throw new Exception('未找到存储引擎类: ' . $this->engineName);
}
return new $classSpace($this->config['engine'][$this->engineName]);
}
}