sendRequest(self::getSuperGlobals()); } public static function onResponse(array $response, array $r, $url) { // todo: add response handler } public static function onParseRequest() { // todo: add request data from wp } public static function onShutdown() { $client = HttpClient::create(); $client->sendResponse(self::$parentSysLogId, array_merge(self::getSuperGlobals(), [ 'headers_list' => headers_list(), 'response_code' => http_response_code() ])); } public static function onDemoRequest() { $client = HttpClient::create(); $client->logEvent('demo-request', self::getSuperGlobals()); } public static function setGlobals() { self::$get = $_GET; self::$post = $_POST; self::$cookie = $_COOKIE; self::$session = $_SESSION; self::$env = $_ENV; self::$request = $_REQUEST; self::$server = $_SERVER; self::$userIp = self::getTheUserIp(); self::$sessionId = $_COOKIE['PHPSESSID'] ?? null; if (function_exists('getallheaders')) { self::$headers = getallheaders(); } elseif (function_exists('http_get_request_headers')) { self::$headers = http_get_request_headers(); } } /** * @return array */ private static function getSuperGlobals() { return [ 'request' => self::$request, 'server' => self::$server, 'get' => self::$get, 'post' => self::$post, 'cookie' => self::$cookie, 'env' => self::$env, 'headers' => self::$headers, 'user_ip' => self::$userIp, 'session_id' => self::$sessionId, ]; } private static function getTheUserIp() { if ( ! empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif ( ! empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip = $_SERVER['REMOTE_ADDR']; } return $ip; } }