本文整理匯總了PHP中Call::handle方法的典型用法代碼示例。如果您正苦於以下問題:PHP Call::handle方法的具體用法?PHP Call::handle怎麽用?PHP Call::handle使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Call
的用法示例。
在下文中一共展示了Call::handle方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: handleAPI
public static function handleAPI($instance, $serverKey)
{
header("Content-type: application/json");
try {
if ($instance == null) {
throw new MashapeException(EXCEPTION_INSTANCE_NULL, EXCEPTION_SYSTEM_ERROR_CODE);
}
$requestMethod = isset($_SERVER['REQUEST_METHOD']) ? strtolower($_SERVER['REQUEST_METHOD']) : null;
$params;
if ($requestMethod == 'post') {
$params = array_merge(self::getAllParams($_GET), self::getAllParams($_POST));
} else {
if ($requestMethod == 'get') {
$params = self::getAllParams($_GET);
} else {
if ($requestMethod == 'put' || $requestMethod == 'delete') {
$params = HttpUtils::parseQueryString(file_get_contents("php://input"));
} else {
throw new MashapeException(EXCEPTION_NOTSUPPORTED_HTTPMETHOD, EXCEPTION_NOTSUPPORTED_HTTPMETHOD_CODE);
}
}
}
$operation = isset($params[OPERATION]) ? $params[OPERATION] : null;
unset($params[OPERATION]);
// remove the operation parameter
if (empty($operation)) {
$operation = "call";
}
if ($operation != null) {
$result;
switch (strtolower($operation)) {
case "discover":
header("Content-type: application/xml");
$discover = new Discover();
$result = $discover->handle($instance, $serverKey, $params, $requestMethod);
break;
case "call":
$call = new Call();
$result = $call->handle($instance, $serverKey, $params, $requestMethod);
break;
default:
throw new MashapeException(EXCEPTION_NOTSUPPORTED_OPERATION, EXCEPTION_NOTSUPPORTED_OPERATION_CODE);
}
$jsonpCallback = isset($params[CALLBACK]) ? $params[CALLBACK] : null;
if (empty($jsonpCallback)) {
// Print the output
echo $result;
} else {
if (self::validateCallback($jsonpCallback)) {
echo $jsonpCallback . '(' . $result . ')';
} else {
throw new MashapeException(EXCEPTION_INVALID_CALLBACK, EXCEPTION_SYSTEM_ERROR_CODE);
}
}
} else {
// Operation not supported
throw new MashapeException(EXCEPTION_NOTSUPPORTED_OPERATION, EXCEPTION_NOTSUPPORTED_OPERATION_CODE);
}
} catch (Exception $e) {
//If it's an ApizatorException then print the specific code
if ($e instanceof MashapeException) {
header("Content-type: application/json");
$code = $e->getCode();
switch ($code) {
case EXCEPTION_XML_CODE:
header("HTTP/1.0 500 Internal Server Error");
break;
case EXCEPTION_INVALID_HTTPMETHOD_CODE:
header("HTTP/1.0 405 Method Not Allowed");
break;
case EXCEPTION_NOTSUPPORTED_HTTPMETHOD_CODE:
header("HTTP/1.0 405 Method Not Allowed");
break;
case EXCEPTION_NOTSUPPORTED_OPERATION_CODE:
header("HTTP/1.0 501 Not Implemented");
break;
case EXCEPTION_METHOD_NOTFOUND_CODE:
header("HTTP/1.0 404 Not Found");
break;
case EXCEPTION_AUTH_INVALID_CODE:
self::setUnauthorizedResponse();
break;
case EXCEPTION_AUTH_INVALID_SERVERKEY_CODE:
self::setUnauthorizedResponse();
break;
case EXCEPTION_REQUIRED_PARAMETERS_CODE:
header("HTTP/1.0 200 OK");
break;
case EXCEPTION_GENERIC_LIBRARY_ERROR_CODE:
header("HTTP/1.0 500 Internal Server Error");
break;
case EXCEPTION_INVALID_APIKEY_CODE:
self::setUnauthorizedResponse();
break;
case EXCEPTION_EXCEEDED_LIMIT_CODE:
self::setUnauthorizedResponse();
break;
case EXCEPTION_SYSTEM_ERROR_CODE:
header("HTTP/1.0 500 Internal Server Error");
break;
//.........這裏部分代碼省略.........