From d2cdce4277db17d877ebbf62e0fa14c30ba3b863 Mon Sep 17 00:00:00 2001 From: qkqpttgf <45693631+qkqpttgf@users.noreply.github.com> Date: Mon, 13 Jul 2020 17:36:17 +0800 Subject: [PATCH] add platform FG --- index.php | 70 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 46 insertions(+), 24 deletions(-) diff --git a/index.php b/index.php index da9bc4f..8917805 100644 --- a/index.php +++ b/index.php @@ -8,8 +8,9 @@ include 'common.php'; if (isset($_SERVER['USER'])&&$_SERVER['USER']==='qcloud') { include 'platform/TencentSCF.php'; } elseif (isset($_SERVER['FC_SERVER_PATH'])&&$_SERVER['FC_SERVER_PATH']==='/var/fc/runtime/php7.2') { - //echo '
'. json_encode($_SERVER, JSON_PRETTY_PRINT).'
'; include 'platform/AliyunFC.php'; +} elseif ($_SERVER['_APP_SHARE_DIR']=='/var/share/CFF/processrouter') { + include 'platform/HuaweiFG.php'; } elseif (isset($_SERVER['HEROKU_APP_DIR'])&&$_SERVER['HEROKU_APP_DIR']==='/app') { include 'platform/Heroku.php'; $path = getpath(); @@ -56,31 +57,53 @@ function main_handler($event, $context) return main($path); } -// Aliyun FC -function handler($request, $context) +// Aliyun FC & Huawei FG +function handler($event, $context) { - set_error_handler("myErrorHandler"); - $event = array( - 'method' => $request->getMethod(), - 'clientIP' => $request->getAttribute("clientIP"), - 'requestURI' => $request->getAttribute("requestURI"), - 'path' => spurlencode($request->getAttribute("path"), '/'), - 'queryString' => $request->getQueryParams(), - 'headers' => $request->getHeaders(), - 'body' => $request->getBody()->getContents(), - ); - $context = json_decode(json_encode($context), true); - printInput($event, $context); - unset($_POST); - unset($_GET); - unset($_COOKIE); - unset($_SERVER); - GetGlobalVariable($event); - $path = GetPathSetting($event, $context); + if (isset($_SERVER['FC_SERVER_PATH'])&&$_SERVER['FC_SERVER_PATH']==='/var/fc/runtime/php7.2') { + // Aliyun FC + set_error_handler("myErrorHandler"); + $tmp = array( + 'method' => $event->getMethod(), + 'clientIP' => $event->getAttribute("clientIP"), + 'eventURI' => $event->getAttribute("eventURI"), + 'path' => spurlencode($event->getAttribute("path"), '/'), + 'queryString' => $event->getQueryParams(), + 'headers' => $event->getHeaders(), + 'body' => $event->getBody()->getContents(), + ); + $event = $tmp; + $context = json_decode(json_encode($context), true); + printInput($event, $context); + unset($_POST); + unset($_GET); + unset($_COOKIE); + unset($_SERVER); + GetGlobalVariable($event); + $path = GetPathSetting($event, $context); - $re = main($path); + $re = main($path); - return new RingCentral\Psr7\Response($re['statusCode'], $re['headers'], $re['body']); + return new RingCentral\Psr7\Response($re['statusCode'], $re['headers'], $re['body']); + + } elseif ($_SERVER['_APP_SHARE_DIR']=='/var/share/CFF/processrouter') { + // Huawei FG + global $contextUserData; + $contextUserData = $context; + $event = json_decode(json_encode($event), true); + if ($event['isBase64Encoded']) $event['body'] = base64_decode($event['body']); + + printInput($event, $context); + unset($_POST); + unset($_GET); + unset($_COOKIE); + unset($_SERVER); + GetGlobalVariable($event); + //echo '
'. json_encode($_COOKIE, JSON_PRETTY_PRINT).'
'; + $path = GetPathSetting($event, $context); + + return main($path); + } } // used by Aliyun FC @@ -105,6 +128,5 @@ function myErrorHandler($errno, $errstr, $errfile, $errline) { break; } - /* Don't execute PHP internal error handler */ return true; }