VolcUtil.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. $key = MemKey_User::stat_volc_headers($zoneid, $uid);
  26. gMem()->set($key, $headers);
  27. }
  28. private static function Headers() {
  29. $zoneid = req()->zoneid;
  30. $uid = req()->uid;
  31. return gMem()->get(MemKey_User::stat_volc_headers($zoneid, $uid));
  32. }
  33. private static function User() {
  34. $user = new Volc_User();
  35. $user->user_unique_id = req()->uid;
  36. return $user;
  37. }
  38. /**
  39. * 上报统计事件
  40. * @param type $event_name
  41. * @param type $params
  42. */
  43. public static function Report($event_name, $params) {
  44. $user = self::User();
  45. $header = self::Headers();
  46. $event = new Volc_Event();
  47. $event->event = $event_name;
  48. $event->local_time_ms = millisecond();
  49. $event->params = $params;
  50. $data = array(
  51. 'user' => $user,
  52. 'header' => $header,
  53. 'events' => array($event)
  54. );
  55. HttpUtil::makeRequest(Volcengine_config::ReportOneURL, $data, array(), Volcengine_config::Headers());
  56. }
  57. }