该组件为系统组件,在组件树中只可命名为 response ,不可修改为其他名称。

响应

响应组件用来将控制器返回的数据、设置的HTTP报头发送至客户端。

调用 运行环境
mix\swoole\Response \Mix::app()->response MixHttpd
mix\web\Response \Mix::app()->response Apache/PHP-FPM

组件配置

App配置文件中,该组件的默认配置如下:

// 响应
'response' => [
    // 类路径
    'class'  => 'mix\swoole\Response',
    // 默认输出格式
    'defaultFormat' => mix\swoole\Response::FORMAT_JSON,
    // json
    'json'   => [
        // 类路径
        'class' => 'mix\web\Json',
    ],
    // jsonp
    'jsonp'  => [
        // 类路径
        'class'        => 'mix\web\Jsonp',
        // callback名称
        'callbackName' => 'callback',
    ],
    // xml
    'xml'    => [
        // 类路径
        'class' => 'mix\web\Xml',
    ],
],

参数 defaultFormat 全部常量明细:

mix\swoole\Response

  • mix\swoole\Response::FORMAT_JSON
  • mix\swoole\Response::FORMAT_JSONP
  • mix\swoole\Response::FORMAT_XML

mix\web\Response

  • mix\web\Response::FORMAT_JSON
  • mix\web\Response::FORMAT_JSONP
  • mix\web\Response::FORMAT_XML

设置响应格式

当开发API接口时,通常需要响应 JSONJSONPXML 格式,这时可在控制中指定响应格式,代码如下:

public function actionIndex()
{
	\Mix::app()->response->format = \mix\swoole\Response::FORMAT_JSONP;
    return ['errcode' => 0, 'errmsg' => 'ok'];
}

也可以在App配置文件中的 defaultFormat 字段中定义默认的响应格式:

// 默认输出格式
'defaultFormat' => mix\swoole\Response::FORMAT_JSON,

重定向

重定向到首页。

\Mix::app()->response->redirect('/');

设置 HTTP 状态码

设置响应的HTTP状态码为404。

\Mix::app()->response->statusCode = 404;

设置 HTTP 报头

设置报头Content-Type为json格式utf8编码。

\Mix::app()->response->setHeader('Content-Type', 'application/json;charset=utf-8');