PushConfig.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. <?php
  2. namespace App\Libs\Push\HuaWei\Admin;
  3. class PushConfig
  4. {
  5. // ORDINAL APP
  6. public $HW_APPID;
  7. public $HW_APPSECRET;
  8. public $HW_PUSH_TOKEN_ARR;
  9. public $APN_PUSH_TOKEN_ARR;
  10. public $WEBPUSH_PUSH_TOKEN_ARR;
  11. // FAST APP
  12. public $HW_FAST_APPID;
  13. public $HW_FAST_APPSECRET;
  14. public $HW_FAST_PUSH_TOKEN;
  15. public $HW_TOKEN_SERVER;
  16. public $HW_PUSH_SERVER;
  17. public $HW_PUSH_TOKEN_QUERY_SERVER;
  18. public $HW_TOPIC_SUBSCRIBE_SERVER;
  19. public $HW_TOPIC_UNSUBSCRIBE_SERVER;
  20. public $HW_TOPIC_QUERY_SUBSCRIBER_SERVER;
  21. public $HW_DEFAULT_LOG_LEVEL = 3;
  22. private $log_read_flag = false;
  23. private function __construct()
  24. {
  25. if ($this->log_read_flag == false) {
  26. $file_path = app_path('/Libs/Push/HuaWei/config.ini');
  27. if (file_exists($file_path)) {
  28. $file_contents = file($file_path);
  29. // read line
  30. for ($i = 0; $i < count($file_contents); $i++) {
  31. $this->processConfigData($file_contents[$i]);
  32. }
  33. $this->log_read_flag = true;
  34. } else {
  35. echo $file_path . " not exist,please config first!!!<br>";
  36. }
  37. }
  38. }
  39. public static function getSingleInstance()
  40. {
  41. static $obj;
  42. if (!isset($obj)) {
  43. $obj = new PushConfig();
  44. }
  45. return $obj;
  46. }
  47. private function processConfigData($lineData)
  48. {
  49. if (empty($lineData)) {
  50. return;
  51. }
  52. if (strncmp($lineData, "#", 1) == 0) {
  53. return;
  54. }
  55. $lineData = str_replace("\"", "", $lineData);
  56. $lineData = str_replace("\'", "", $lineData);
  57. $lineData = str_replace(" ", "", $lineData);
  58. $lineData = str_replace(";", "", $lineData);
  59. $lineData = str_replace(PHP_EOL, '', $lineData);
  60. $resultPos = stripos($lineData, "=");
  61. if (FALSE == $resultPos) {
  62. return;
  63. }
  64. $key = substr($lineData, 0, $resultPos);
  65. if (FALSE == $key) {
  66. return;
  67. }
  68. $value = $this->processConfigValueData(substr($lineData, $resultPos + 1));
  69. switch ($key) {
  70. case "HW_APPID":
  71. {
  72. $this->HW_APPID = $value;
  73. }
  74. break;
  75. case "HW_APPSECRET":
  76. {
  77. $this->HW_APPSECRET = $value;
  78. }
  79. break;
  80. case "HW_TOKEN_SERVER":
  81. {
  82. $this->HW_TOKEN_SERVER = $value;
  83. }
  84. break;
  85. case "HW_PUSH_SERVER":
  86. {
  87. $this->HW_PUSH_SERVER = $value;
  88. }
  89. break;
  90. case "HW_TOPIC_SUBSCRIBE_SERVER":
  91. {
  92. $this->HW_TOPIC_SUBSCRIBE_SERVER = $value;
  93. }
  94. break;
  95. case "HW_TOPIC_UNSUBSCRIBE_SERVER":
  96. {
  97. $this->HW_TOPIC_UNSUBSCRIBE_SERVER = $value;
  98. }
  99. break;
  100. case "HW_TOPIC_QUERY_SUBSCRIBER_SERVER":
  101. {
  102. $this->HW_TOPIC_QUERY_SUBSCRIBER_SERVER = $value;
  103. }
  104. break;
  105. case "HW_PUSH_TOKEN_ARR":
  106. {
  107. $this->HW_PUSH_TOKEN_ARR = $value;
  108. }
  109. break;
  110. case "APN_PUSH_TOKEN_ARR":
  111. {
  112. $this->APN_PUSH_TOKEN_ARR = $value;
  113. }
  114. break;
  115. case "WEBPUSH_PUSH_TOKEN_ARR":
  116. {
  117. $this->WEBPUSH_PUSH_TOKEN_ARR = $value;
  118. }
  119. break;
  120. case "HW_DEFAULT_LOG_LEVEL":
  121. {
  122. $this->HW_DEFAULT_LOG_LEVEL = $value;
  123. }
  124. break;
  125. case "HW_FAST_APPID":
  126. {
  127. $this->HW_FAST_APPID = $value;
  128. }
  129. break;
  130. case "HW_FAST_APPSECRET":
  131. {
  132. $this->HW_FAST_APPSECRET = $value;
  133. }
  134. break;
  135. case "HW_FAST_PUSH_TOKEN":
  136. {
  137. $this->HW_FAST_PUSH_TOKEN = $value;
  138. }
  139. break;
  140. }
  141. }
  142. private function processConfigValueData($lineDataMapValue)
  143. {
  144. $key = stripos($lineDataMapValue, "\"");
  145. if (FALSE == $key) {
  146. return trim($lineDataMapValue);
  147. }
  148. if ($key > 0) {
  149. return str_replace("\"", "", substr($lineDataMapValue, $key));
  150. }
  151. return trim($lineDataMapValue);
  152. }
  153. }