Hook的使用方法

使用钩子
image.png
插件中的命名
image.png
定义的一个钩子
image.png

钩子的制作

钩子就像是java里面的AOP面向切面变成可以在既定的生命周期内添加业务逻辑

使用钩子执行一个事件
image.png
这里面的class参数要写成命名空间的地址,最后一个类名要成 文件的类名,tag参数写的事这个类里面的方法名

api加载插件漏洞

发送验证码要先添加这个钩子
image.png

composer扩展

vender函数的用法

image.png

发送语音或者短信验证码

遇到的问题image.png
curl_setopt():设置 CURLOPT_HTTPHEADER 属性,你必须使用对象或数组。

极光短信验证码

有一点是需要注意的
image.png

发送函数

  1. public function send_zzk()
  2. {
  3. // $aliyun = new MobileCodeAliyunPlugin();
  4. //
  5. $data = ['mobile'=>18722647547,'code'=>541236,'voice_lang'=>0];
  6. $data = json_encode($data); //把数组转成json
  7. // $data = '{"mobile": "18722647547", "code":541236,"voice_lang": 0}';
  8. // $result = $aliyun->sendMobileVerificationCode($param);
  9. // var_dump($result);
  10. $curl = curl_init();
  11. //设置抓取的url
  12. curl_setopt($curl, CURLOPT_URL, 'https://api.sms.jpush.cn/v1/voice_codes');
  13. curl_setopt($curl, CURLOPT_HEADER, false);//设置头文件的信息作为数据流输出
  14. curl_setopt($curl, CURLOPT_POST, true);//设置发送的类型
  15. //设置获取的信息以文件流的形式返回,而不是直接输出。
  16. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  17. curl_setopt($curl, CURLOPT_POSTFIELDS, $data);//设置发送的数据
  18. $base64_auth_string = base64_encode('ca0aeedf22605dc9c7433a48:289cc110f8f2c0a97a85dbeb');
  19. $header[] = "Authorization: Basic ".$base64_auth_string;
  20. $header[] = 'Content-Type:application/json';
  21. curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
  22. $data = curl_exec($curl);//执行命令
  23. curl_close($curl);//关闭URL请求
  24. /**
  25. * 显示获得的数据
  26. * 1、json_decode对JSON格式的字符串进行编码
  27. * 2、json_encode对变量进行 JSON 编码
  28. * 这两个函数当中的assoc 当该参数为 TRUE 时,将返回 array 而非 object
  29. */
  30. return response(json_decode($data),200,[],'json');
  31. }

image.png

发送邮箱验证码

image.png

导航菜单用法

image.png

添加新的模板页面

上传模板文件之后要更新模板
image.png
这样才能在模板中找到这个页面模板
image.png

带提示框的ajax表单

image.png

修改后台模板

image.png