Hook的使用方法
使用钩子
插件中的命名
定义的一个钩子
钩子的制作
钩子就像是java里面的AOP面向切面变成可以在既定的生命周期内添加业务逻辑
使用钩子执行一个事件
这里面的class参数要写成命名空间的地址,最后一个类名要成 文件的类名,tag参数写的事这个类里面的方法名
api加载插件漏洞
composer扩展
vender函数的用法
发送语音或者短信验证码
遇到的问题
curl_setopt():设置 CURLOPT_HTTPHEADER 属性,你必须使用对象或数组。
极光短信验证码
发送函数
public function send_zzk(){// $aliyun = new MobileCodeAliyunPlugin();//$data = ['mobile'=>18722647547,'code'=>541236,'voice_lang'=>0];$data = json_encode($data); //把数组转成json// $data = '{"mobile": "18722647547", "code":541236,"voice_lang": 0}';// $result = $aliyun->sendMobileVerificationCode($param);// var_dump($result);$curl = curl_init();//设置抓取的urlcurl_setopt($curl, CURLOPT_URL, 'https://api.sms.jpush.cn/v1/voice_codes');curl_setopt($curl, CURLOPT_HEADER, false);//设置头文件的信息作为数据流输出curl_setopt($curl, CURLOPT_POST, true);//设置发送的类型//设置获取的信息以文件流的形式返回,而不是直接输出。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, $data);//设置发送的数据$base64_auth_string = base64_encode('ca0aeedf22605dc9c7433a48:289cc110f8f2c0a97a85dbeb');$header[] = "Authorization: Basic ".$base64_auth_string;$header[] = 'Content-Type:application/json';curl_setopt($curl, CURLOPT_HTTPHEADER, $header);$data = curl_exec($curl);//执行命令curl_close($curl);//关闭URL请求/*** 显示获得的数据* 1、json_decode对JSON格式的字符串进行编码* 2、json_encode对变量进行 JSON 编码* 这两个函数当中的assoc 当该参数为 TRUE 时,将返回 array 而非 object*/return response(json_decode($data),200,[],'json');}
发送邮箱验证码

导航菜单用法
添加新的模板页面
上传模板文件之后要更新模板
这样才能在模板中找到这个页面模板
带提示框的ajax表单

修改后台模板

