21,887
社区成员
发帖
与我相关
我的任务
分享
<?php
ini_set('display_errors', true);
define('__ROOT__', dirname(dirname(__FILE__)));
check_http_raw_post_data(
//序列化原始数据成功的事件
function($post_data){
if(!isset($post_data["module"])){
die(json_encode(array("status"=>0,"info"=>"没有找到相应的模块。")));
}else{
$module_name=$post_data["module"];
$class_name= split("/",$module_name);
$class_name=$class_name[count($class_name)-1];
$module_name="/".preg_replace("/^\//", "", $module_name).".php";
$module_name=__ROOT__.$module_name;
if(!file_exists($module_name)){
die(json_encode(array("status"=>0,"info"=>"没有找到名称为 $class_name 的模块。")));
}else{
require_once $module_name;
$class_name::getInstance()->run($post_data);
}
}
},
//序列化原始数据失败的事件
function($fialed_info){
echo json_encode($fialed_info);
}
);
function check_http_raw_post_data($on_success,$on_failed=NULL){
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if($postStr){
try{
$post_data=json_decode($postStr,TRUE);
$on_success($post_data);
} catch (Exception $ex) {
if($on_failed){
$on_failed(array("status"=>0,"info"=>$ex->getTraceAsString()));
}else{
die(json_encode(array("status"=>0,"info"=>$ex->getTraceAsString())));
}
}
}else{
if($on_failed){
$on_failed(array("status"=>0,"info"=>"参数为空。"));
}else{
die(json_encode(array("status"=>0,"info"=>"参数为空。")));
}
}
}
?>
function($post_data){
if(!isset($post_data["module"])){
die(json_encode(array("status"=>0,"info"=>"没有找到相应的模块。")));
}
$module_name=$post_data["module"];
$class_name= split("/",$module_name);
$class_name=$class_name[count($class_name)-1];
$module_name="/".preg_replace("/^\//", "", $module_name).".php";
$module_name=__ROOT__.$module_name;
if(!file_exists($module_name)){
die(json_encode(array("status"=>0,"info"=>"没有找到名称为 $class_name 的模块。")));
}
require_once $module_name;
$class_name::getInstance()->run($post_data);
}
消息传递用异常会不会好点,可以捕获,也可以修复,看到die心里总会莫名的咯噔一下。
个人愚见