<?php /** * Created by PhpStorm * User: 林志杰 * Email: 598287049@qq.com * Time: 2020/1/11 17:56 */ declare(strict_types=1); namespace app\common\business; use AlibabaCloud\Client\Exception\ClientException; use app\common\lib\ClassArr; use app\common\lib\Num; use app\common\lib\sms\AliSms; class Sms { public static function sendCode(string $phoneNumber, int $len, string $type = 'ali'): bool { // 生成短信验证码 $code = Num::getCode($len); // 普通模式 // $sms = AliSms::sendCode($phoneNumber, $code); // 工厂模式1 // $type = ucfirst($type); // $class = "app\common\lib\sms\{$type}Sms"; // $sms = $class::sendCode($phoneNumber, $code); // 工厂模式2 $classStats = ClassArr::smsClassStat(); $class = ClassArr::initClass($type, $classStats); $sms = $class::sendCode($phoneNumber, $code); if ($sms) { // 将验证码记录到redis,并设置失效时间 // 检查php环境是否有redis拓展 // redis服务 cache(config('redis.code_pre') . $phoneNumber, $code, config('redis.expire')); } return true; } }