narrowspark/http-emitter

此包已废弃,不再维护。没有建议的替代包。

发射psr-7响应。


README

向PHP服务器API发射响应。

68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6e6172726f77737061726b2f687474702d656d69747465722e7376673f7374796c653d666c61742d737175617265 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253545382e302e302d3838393242462e7376673f7374796c653d666c61742d737175617265 68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f727573742d6c616e672f727573742f6d61737465722e7376673f7374796c653d666c61742d737175617265 68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f6e6172726f77737061726b2f687474702d656d69747465722f6d61737465722e7376673f7374796c653d666c61742d737175617265 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2532302532302546302539462539332541362546302539462539412538302d73656d616e7469632d2d72656c656173652d6531303037392e7376673f7374796c653d666c61742d737175617265 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6e7472696275746f72253230436f76656e616e742d322e302d3462616161612e7376673f7374796c653d666c61742d737175617265 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265

可用的发射器实现。

- `Narrowspark\HttpEmitter\SapiEmitter`
- `Narrowspark\HttpEmitter\SapiStreamEmitter`.

注意:每个实现都使用原生PHP函数 header()echo 来发射响应。

注意:如果已发送头信息,或者存在输出缓冲区,且长度非零,发射器将抛出异常,因为混合PSR-7 / 输出缓冲区内容会导致阻塞问题。

如果您通过 echoprintvar_dump 等方式发射内容,或者没有捕获PHP错误/异常,您需要修改您的应用程序,使其始终与PSR-7响应一起工作。或者提供自己的发射器,允许混合输出机制。

安装

composer require narrowspark/http-emitter

使用

如何使用SapiEmitter

<?php

use Narrowspark\HttpEmitter\SapiEmitter;

$response = new \Response();
$response->getBody()->write("some content\n");

$emitter = new SapiEmitter();
$emitter->emit($response);

如果您缺少 Content-Length 头信息,可以使用 \Narrowspark\HttpEmitter\Util\Util::injectContentLength 静态方法。

<?php

use Narrowspark\HttpEmitter\Util;

$response = new \Response();

$response = Util::injectContentLength($response);

版本控制

此库遵循语义版本控制,对代码规则集的添加在主要版本中执行。

变更日志

请查看CHANGELOG.md

贡献

如果您想帮忙,请查看问题列表并检查我们的贡献指南

行为准则

请查看CODE_OF_CONDUCT.md

许可证

此包使用MIT许可证。

请查看LICENSE.md