DataPack.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace app\lib;
  3. /**
  4. * Created by PhpStorm.
  5. * User: Administrator
  6. * Date: 2019/5/20
  7. * Time: 13:33
  8. */
  9. //服务端下发数据包标准格式;
  10. class DataPack
  11. {
  12. private static $Datas = [];
  13. private static $Instance = null ;
  14. public function getInstance($cache = true)
  15. {
  16. if ($cache && self::$Instance) {
  17. return self::$Instance;
  18. }
  19. self::$Instance = new self();
  20. return self::$Instance;
  21. }
  22. public static function Create($array)
  23. {
  24. self::$Datas = $array;
  25. }
  26. public static function toJson($array = [])
  27. {
  28. if (!empty($array)) {
  29. self::Create($array);
  30. }
  31. $ret = [
  32. 'id' => isset(self::$Datas['id']) ? self::$Datas['id'] : self::UUID(),
  33. 'fr' => isset(self::$Datas['from']) ? self::$Datas['from'] : 0,
  34. 'to' => isset(self::$Datas['to']) ? self::$Datas['to'] : 0,
  35. 'ct' => time(),
  36. 'mt' => isset(self::$Datas['mtype']) ? self::$Datas['mtype'] : '',
  37. 'st' => isset(self::$Datas['stype']) ? self::$Datas['stype'] : '',
  38. 'cf' => isset(self::$Datas['confirm']) ? self::$Datas['confirm'] : 0,
  39. 'data' => isset(self::$Datas['data']) ? self::$Datas['data'] : 0,
  40. ];
  41. return json_encode($ret, JSON_UNESCAPED_UNICODE);
  42. }
  43. public static function setKey($key, $val)
  44. {
  45. self::$Datas[$key] = $val;
  46. }
  47. public static function getKey($key, $default = '')
  48. {
  49. if (isset(self::$Datas[$key])) {
  50. return self::$Datas[$key];
  51. }
  52. return $default;
  53. }
  54. public static function reset()
  55. {
  56. self::$Datas = [];
  57. }
  58. public static function UUID()
  59. {
  60. return md5(microtime() . uniqid('pack_') . rand(1, 999999));
  61. }
  62. }