binsoul/net-http-response

专业的响应和体类以及响应发射器

dev-master / 1.0.x-dev 2016-04-27 19:57 UTC

This package is auto-updated.

Last update: 2024-09-14 22:31:22 UTC


README

Latest Version on Packagist Software License Total Downloads

安装

通过 composer

$ composer require binsoul/net-http-response

此包提供了与 PSR-7 ResponseInterface 兼容的响应类,这些类针对已知的 HTTP 状态码和体实现进行了专门化,并扩展了 PSR-7 StreamInterface 以包含一些有用的方法。包含的响应发射器可以将响应输出到不同的目标环境。

用法

在 web 服务器上输出文本响应

<?php

use BinSoul\Net\Http\Response\Body\Type\TextBody;
use BinSoul\Net\Http\Response\Emitter\DefaultEmitter;
use BinSoul\Net\Http\Response\Emitter\Target\SapiTarget;
use BinSoul\Net\Http\Response\Type\Success\OkResponse;

require 'vendor/autoload.php';

$response = new OkResponse(new TextBody('Hello world!'));
$emitter = new DefaultEmitter();
$emitter->emit($response, new SapiTarget());

捕获并显示响应头和体

<?php

use BinSoul\Net\Http\Response\Body\Type\TextBody;
use BinSoul\Net\Http\Response\Emitter\DefaultEmitter;
use BinSoul\Net\Http\Response\Emitter\Target\CaptureTarget;
use BinSoul\Net\Http\Response\Type\Success\OkResponse;

require 'vendor/autoload.php';

// make var_export HTML friendly
function dump($value)
{
    return htmlentities(preg_replace("/\s+=>\s+/m", ' => ', var_export($value, true)));
}

$response = new OkResponse(new TextBody('Hello world!'));
$target = new CaptureTarget();
$emitter = new DefaultEmitter();
$emitter->emit($response, $target);

?>
<!DOCTYPE html>
<html>
<body>
    <h1>Headers</h1>
    <pre><?= dump($target->getHeaders()) ?></pre>
    <h1>Body</h1>
    <pre><?= dump($target->getBody()) ?></pre>
</body>
</html>

测试

$ composer test

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅许可证文件