MerchantServer.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 16/3/10
  6. * Time: 下午9:08
  7. */
  8. namespace fcgisrv;
  9. require_once(BASE_ROOT_PATH . '/helper/area_helper.php');
  10. require_once(BASE_CORE_PATH . '/framework/function/http.php');
  11. require_once(BASE_ROOT_PATH . '/helper/session_helper.php');
  12. require_once(BASE_ROOT_PATH . '/helper/sensitive_word/dfa.php');
  13. require_once(BASE_ROOT_PATH . '/helper/exceptionex.php');
  14. require_once(BASE_ROOT_PATH . '/helper/session_helper.php');
  15. require_once(BASE_HELPER_PATH . '/fcgisrv/BaseServer.php');
  16. require_once(BASE_HELPER_PATH . '/session.php');
  17. use DFAFilter;
  18. use area_helper;
  19. use Log;
  20. use session;
  21. use Base;
  22. use UnloginException;
  23. use Exception;
  24. use merchantControl;
  25. use errcode;
  26. class MerchantServer extends BaseServer
  27. {
  28. static private $stInstance = NULL;
  29. static public function instance()
  30. {
  31. if(self::$stInstance == NULL) {
  32. self::$stInstance = new MerchantServer('mchsrv');
  33. }
  34. return self::$stInstance;
  35. }
  36. public function __construct($subPath)
  37. {
  38. parent::__construct($subPath);
  39. $this->setExFiles([]);
  40. }
  41. protected function preLooper()
  42. {
  43. parent::preLooper();
  44. DFAFilter::instance();
  45. area_helper::instance();
  46. }
  47. public function handle_req($file)
  48. {
  49. try
  50. {
  51. fcgi_header("Content-Type: text/html; charset=UTF-8");
  52. if(file_exists($file))
  53. {
  54. if(defined('CROSS_DOAMIN') && CROSS_DOAMIN == true) {
  55. // $host = 'http://192.168.1.11:3333';
  56. $host = 'http://10.132.133.112:3333';
  57. fcgi_header("Access-Control-Allow-Headers:DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type, Accept-Language, Origin, Accept-Encoding");
  58. fcgi_header("Content-Type: text/html; charset=UTF-8");
  59. fcgi_header("Access-Control-Allow-Credentials: true");
  60. fcgi_header("Access-Control-Allow-Origin: {$host}");
  61. fcgi_header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,PATCH');
  62. }
  63. if($this->is_exclude($file)) {
  64. include $file;
  65. }
  66. else
  67. {
  68. if(!isset($_GET['act'])) {
  69. $_GET['act'] = 'index';
  70. }
  71. if(!isset($_GET['op'])) {
  72. $_GET['op'] = 'index';
  73. }
  74. if(!isset($_POST['act'])) {
  75. $_POST['act'] = 'index';
  76. }
  77. if(!isset($_POST['op'])) {
  78. $_POST['op'] = 'index';
  79. }
  80. //部分控制器不需要使用session.
  81. session::instance()->start();
  82. Base::mobile_control();
  83. }
  84. }
  85. else
  86. {
  87. Log::record("Can Not call file: {$file}",Log::DEBUG);
  88. echo "no such file.";
  89. }
  90. }
  91. catch (UnloginException $ex) {
  92. merchantControl::outerr(errcode::ErrUnLogin,errcode::msg(errcode::ErrUnLogin));
  93. }
  94. catch (Exception $ex) {
  95. merchantControl::outerr($ex->getCode(),$ex->getMessage());
  96. Log::record("run_looper exception catch code={$ex->getCode()} msg={$ex->getMessage()} trace={$ex->getTraceAsString()}",Log::ERR);
  97. }
  98. session::instance()->end();
  99. }
  100. }