VolcUtil.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace loyalsoft;
  3. require_once __DIR__ . '/Volcengine_config.php';
  4. require_once __DIR__ . '/VolcModels.php';
  5. /**
  6. * 火山引擎
  7. * @author gwang
  8. */
  9. class VolcUtil {
  10. /**
  11. * 初始化
  12. * 接收客户端上传的附加参数信息.并存入redis
  13. * 后面上报时直接提取信息并合并到headers
  14. */
  15. public static function Init($app_name, $app_package, $app_channel, $app_version, #
  16. $os_name, $os_version, $device_model, #
  17. $ab_version, $traffic_type) {
  18. $client_ip = HttpUtil::clientIP(); # 客户端ip
  19. $headers = compact($app_name, $app_package, $app_channel, $app_version, #
  20. $os_name, $os_version, $device_model, #
  21. $ab_version, $traffic_type, $client_ip
  22. );
  23. $zoneid = req()->zoneid;
  24. $uid = req()->uid;
  25. gMem()->add(MemKey_User::stat_volc_headers($zoneid, $uid), $headers);
  26. }
  27. private static function Headers() {
  28. $zoneid = req()->zoneid;
  29. $uid = req()->uid;
  30. return gMem()->get(MemKey_User::stat_volc_headers($zoneid, $uid));
  31. }
  32. private static function User() {
  33. $user = new Volc_User();
  34. $user->user_unique_id = req()->uid;
  35. return $user;
  36. }
  37. /**
  38. * 上报统计事件
  39. * @param type $event_name
  40. * @param type $params
  41. */
  42. public static function Report($event_name, $params) {
  43. $user = self::User();
  44. $header = self::Headers();
  45. $event = new Volc_Event();
  46. $event->event = $event_name;
  47. $event->local_time_ms = millisecond();
  48. $event->params = $params;
  49. $data = array(
  50. 'user' => $user,
  51. 'header' => $header,
  52. 'events' => array($event)
  53. );
  54. HttpUtil::makeRequest(Volcengine_config::ReportOneURL, $data, array(), Volcengine_config::Headers());
  55. }
  56. }