teapot / status
dev-master / 1.0.x-dev
2013-06-13 15:12 UTC
Requires
- php: >=5.3.3
Requires (Dev)
- pdepend/pdepend: *
- phploc/phploc: >=1.7.4
- phpmd/phpmd: >=1.4.0
- phpunit/phpunit: 3.7.*
- shrink/phpcpd: dev-master
- squizlabs/php_codesniffer: 1.*
- theseer/phpdox: *
- zerkalica/php-code-browser: dev-master
This package is not auto-updated.
Last update: 2016-10-05 15:56:54 UTC
README
这是一个非常简单的库,旨在通过定义清晰的HTTP 1.1响应代码常量来帮助任何基于Web的应用程序的冗余。它包括两个文件:一个接口文件,其中包含常量,以及一个专门针对HTTP的异常。
使用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上联系我。