改进Route类的路由匹配后的后置行为 允许单独执行输出 并废除 response_auto_output 配置参数

This commit is contained in:
thinkphp
2016-05-10 16:08:10 +08:00
parent 46009e3c2e
commit 0d497d4abb
3 changed files with 11 additions and 7 deletions

View File

@@ -94,13 +94,16 @@ class App
// 规则闭包
$data = self::invokeFunction($dispatch['function'], $dispatch['params']);
break;
case 'finish':
// 已经完成 不再继续执行
break;
default:
throw new Exception('dispatch type not support', 10008);
}
// 监听app_end
APP_HOOK && Hook::listen('app_end', $data);
// 输出数据到客户端
if (Config::get('response_auto_output')) {
if (isset($data)) {
// 自动响应输出
return Response::send($data, Response::type(), Config::get('response_return'));
}

View File

@@ -525,7 +525,10 @@ class Route
// 匹配到路由规则
// 检测是否定义路由
if (!empty($option['after_behavior'])) {
Hook::exec($option['after_behavior'], $route);
$result = Hook::exec($option['after_behavior'], $route);
if (false === $result) {
return ['type' => 'finish'];
}
}
if ($route instanceof \Closure) {
// 执行闭包