AttwFramework的HTTP组件

dev-master 2014-10-05 03:29 UTC

This package is auto-updated.

Last update: 2024-09-16 03:46:35 UTC


README

Total Downloads Latest Unstable Version License

AttwFramework的HTTP组件。
##Composer
###下载

{
    "require": {
        "attwframework/http": "dev-master"
    }
}

##如何使用
###请求
这个类用于处理HTTP请求。每个请求都有一个在\Attw\Http\Request上的属性,该属性返回一个\Attw\Http\Request\Method\RequestsCollection实例,它扩展了\Attw\Tool\Collection\ArrayCollection

每个属性的值可以在请求类的构造函数中定义。如果为null(array()),则值将是全局属性($_GET$_POST$_FILES$_SERVER$_COOKIE)。

参数顺序:Request([array $query = array(), [array $post = array(), [array $files = array(), [array $server = array(), [array $cookies = array()]]]]])
####全局示例

use Attw\Http\Request;

$_GET['foo'] = 'bar';
$request = new Request();
echo $request->query->get('foo');// bar

无全局

use Attw\Http\Request;

$request = new Request(['bar' => 'foo']);
echo $request->query->get('bar');// foo

###响应
使用它,您可以向客户端发送响应。如果请求成功执行(状态码为200)或失败(状态码不是200),则响应将发送到客户端,内容类型(HTML、JSON、图像等)和其他头部。

您可以创建一个头部集合一次性发送所有头部,也可以逐个发送。

\Attw\Http\Response实例中,您可以定义当前状态码和使用的HTTP协议版本:Response([$statusCode = 200, [$protocol = 'HTTP/1.1']])

####示例:发送一个头部

use Attw\Http\Response;

$response = new Response();
$response->sendHeader('Location', 'http://foo.bar'); //will redirect to http://foo.bar

发送多个头部

$response->addHeader('Content-type', 'text/html');
$response->addHeader('Charset=UTF-8');
$response->sendAllHeaders();

###Cookies
Cookie基本上是服务器请求客户端保存的一些数据。每次您访问该域时,您的机器都会向它发送所有保存到它的cookie。一个cookie仅属于您,属于您的机器。

用于设置cookie的类是\Attw\Http\Cookie\Cookies,用于读取cookie的类是\Attw\Http\Request
####示例

use Attw\Http\Cookie\Cookie;
use Attw\Http\Cookie\Cookies;
use Attw\Http\Request;

$cookies = new Cookies();
$cookie = new Cookie('foo', 'bar');//name: foo; value: bat
$cookies->set($cookie);
$request = new Request();
echo $request->cookie->get('foo');// bar