teapot/status

此包已被废弃,不再维护。作者建议使用shrikeh/teapot包。

PHP HTTP响应状态库

dev-master / 1.0.x-dev 2013-06-13 15:12 UTC

This package is not auto-updated.

Last update: 2016-10-05 15:56:54 UTC


README

这是一个非常简单的库,旨在通过定义清晰的HTTP 1.1响应代码常量来帮助任何基于Web的应用程序的冗余。它包括两个文件:一个接口文件,其中包含常量,以及一个专门针对HTTP的异常。

Build Status

使用StatusCodes接口

假设我们正在对一个cURL客户端响应进行PHPUnit测试

<?php

/**
 * @test
 * @dataProvider someUrlProvider
 **/
public function testResponseIsOK($url)
{
    $client = new Client($url);
    $response = $client->get();
    $this->assertEquals(200, $response->getStatusCode());
}

这将变成

<?php
use \Teapot\HttpResponse\StatusCode;
...
$this->assertEquals(StatusCode:OK, $response->getStatusCode());

虽然这是一个简单的例子,但与其他HTTP状态代码相比,代码的额外冗余更清晰

<?php
use \Teapot\HttpResponse\StatusCode;

$this->assertEquals(StatusCode:NOT_FOUND, $response->getStatusCode());
$this->assertEquals(StatusCode:FORBIDDEN, $response->getStatusCode());
$this->assertEquals(StatusCode:MOVED_PERMANENTLY, $response->getStatusCode());
$this->assertEquals(StatusCode:CREATED, $response->getStatusCode());

由于StatusCode是一个没有方法的接口,如果您愿意,可以直接实现它

<?php

class FooController implements \Teapot\HttpResponse\StatusCode
{

    public function badAction()
    {
        if ($this->request->getMethod() == 'POST') {
            throw new \Exception('Bad!', self::METHOD_NOT_ALLOWED);
        }
    }
}

这可能在抽象类中很有用,这样子类就不需要显式使用接口。

所有常量都有文档块,使用官方W3C的状态代码描述,以帮助IDE和作为参考。

编码标准

整个库旨在遵守PSR-2

联系方式

如果您有任何建议,请随时通过barney+teapot@shrikeh.net给我发邮件或通过@shrikeh在Twitter上联系我。