MerchantServer.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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. if(file_exists($file))
  52. {
  53. if(defined('CROSS_DOAMIN') && CROSS_DOAMIN == true) {
  54. $host = 'http://192.168.1.160:3333';
  55. 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");
  56. fcgi_header("Content-Type: text/html; charset=UTF-8");
  57. fcgi_header("Access-Control-Allow-Credentials: true");
  58. fcgi_header("Access-Control-Allow-Origin: {$host}");
  59. fcgi_header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,PATCH');
  60. }
  61. if($this->is_exclude($file)) {
  62. include $file;
  63. }
  64. else
  65. {
  66. if(!isset($_GET['act'])) {
  67. $_GET['act'] = 'index';
  68. }
  69. if(!isset($_GET['op'])) {
  70. $_GET['op'] = 'index';
  71. }
  72. if(!isset($_POST['act'])) {
  73. $_POST['act'] = 'index';
  74. }
  75. if(!isset($_POST['op'])) {
  76. $_POST['op'] = 'index';
  77. }
  78. //部分控制器不需要使用session.
  79. session::instance()->start();
  80. Base::mobile_control();
  81. }
  82. }
  83. else
  84. {
  85. Log::record("Can Not call file: {$file}",Log::DEBUG);
  86. fcgi_header("Content-Type: text/html; charset=UTF-8");
  87. echo "no such file.";
  88. }
  89. }
  90. catch (UnloginException $ex) {
  91. merchantControl::outerr(errcode::ErrUnLogin,errcode::msg(errcode::ErrUnLogin));
  92. }
  93. catch (Exception $ex) {
  94. merchantControl::outerr($ex->getCode(),$ex->getMessage());
  95. Log::record("run_looper exception catch code={$ex->getCode()} msg={$ex->getMessage()} trace={$ex->getTraceAsString()}",Log::ERR);
  96. }
  97. session::instance()->end();
  98. }
  99. }