综述

说明

所谓应用模式就是总结常用的应用需求与开发习惯,实现一套从接收请求到调用应用代码最后响应请求的开发流程规范。

但是应用需求总是各不相同:从网页应用到REST API再到各种特有协议的RPC,一套代码无法实现所有应用需求,所以在框架应用基类framework\App定义了一套接口:dispatch call error response,所有应用模式类都继承基类并实现了这些接口方法,然后由框架调用这些接口方法,实现整个应用流程。

框架本身也并遵循这些接口实现了Standard Rest Micro Inline Jsonrpc Grpc等常用内置应用模式,用户可以根据需求选择合适应用模式(如无特殊需求建议使用Standard模式)开发应用。


入门阶段可跳先过此章节,只阅读标准模式快速开发实现一个简单应用。

接口定义

/*
* 应用调度方法,调度失败返回false
*/
abstract protected function dispatch();

调度处理:需要从请求Request信息(通常在Requesturl中)里获取请求需要调度应用代码的信息,并验证是否有效,如果调度成功返回含有调度信息的数组,否则返回false。

/*
* 调用应用
*/
abstract protected function call();

调用应用代码:在dispatch调度成功后,使用调度信息调用应用代码,并返回应用代码的return值.

/*
* 错误处理
*/
abstract protected function error($code, $message);

错误处理:当应用出现错误时发送错误响应,通常有以下3种情况用到。

  1. dispatch调度失败后,通常作404处理。
  2. 在触发致命错误或异常后(由Error核心类调用),通常作500处理。
  3. 用户使用App::abort()方法主动终止应用。

用户也可以自己使用App::setErrorHandler()注册错误处理器来覆盖默认的error方法

/*
* 响应处理
*/
abstract protected function response($return);

响应处理:接收call方法的return值,处理成json html等格式内容,然后将内容响应给请求者。

用户也可以自己设置App::run($return_handler)方法的$return_handler参数来设定一个return处理器,既可以用来处理修改return数据,也可以覆盖默认的response方法

应用方法

以下方法除了run()都是静态方法。