11.13. The Yaf_Response_Abstract class

简介

响应对象和请求对象相对应, 是发送给请求端的响应的载体

在PHP5.3之后, 打开yaf.use_namespace的情况下, 也可以使用 Yaf\Response_Abstract

 
    abstract 
    Yaf_Response_Abstract
    {
protected array _body ;
protected array _header ;
public boolean setBody ( string $body ,
string $name = NULL );

public boolean prependBody ( string $body ,
string $name = NULL );

public boolean appendBody ( string $body ,
string $name = NULL );

public boolean clearBody ( void );
public string getBody ( void );
public boolean response ( void );
public boolean setRedirect ( string $url );
public string __toString ( void );
}
属性说明
_body

响应给请求的Body内容

_header

响应给请求的Header, 目前是保留属性

The Yaf_Response_Http class

简介

Yaf_Response_Http是在Yaf作为Web应用的时候默认响应载体

 
     final 
     Yaf_Response_Http
     extends
     Yaf_Response_Abstract
     {
protected array _code = 200 ;
}
属性说明
_code

响应给请求端的HTTP状态码

The Yaf_Response_Cli class

简介

Yaf_Response_Cli是在Yaf作为命令行应用的时候默认响应载体

 
     final 
     Yaf_Response_Cli
     extends
     Yaf_Response_Abstract
     {
}
内容块常量

Yaf_Response_Abstract定义了类常量Yaf_Response_Abstract::DEFAULT_BODY, 值为"content", 它是setBody/appendBody/prependBody/getBody/clearBody在不指定$name参数时使用的默认内容块名.

响应头方法

除了Body, 响应对象还可以管理HTTP响应头:

setHeader(string $name, string $value [, bool $replace = false [, int $response_code = 0]])

设置一个HTTP响应头; $replace为TRUE时覆盖已有的同名响应头, $response_code非0时同时设置HTTP状态码

setAllHeaders(array $headers)

以"响应头名 => 响应头值"数组的形式一次性设置所有响应头, 已存在的同名响应头会被替换

getHeader([string $name = NULL])

获取响应头: 指定$name返回该响应头的值, 未设置时返回NULL; 不指定时以数组形式返回所有已设置的响应头

clearHeaders(void)

移除所有已设置的响应头, 返回响应对象自身

[注意] 注意
以上方法只在Yaf_Response_Http中有完整实现, 会真正发送HTTP响应头; 在Yaf_Response_Abstract中只是桩方法, Yaf_Response_Cli不会发送HTTP响应头.