yiisoft / data-response
允许以自动转换为 PSR-7 响应的数据进行响应
2.1.0
2024-03-03 06:01 UTC
Requires
- php: ^8.1
- ext-dom: *
- psr/http-factory: ^1.0
- psr/http-message: ^1.0|^2.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
- yiisoft/http: ^1.2
- yiisoft/json: ^1.0
- yiisoft/strings: ^2.0
Requires (Dev)
- httpsoft/http-message: ^1.0
- maglnet/composer-require-checker: ^4.7
- phpunit/phpunit: ^10.5
- rector/rector: ^1.0
- roave/infection-static-analysis-plugin: ^1.16
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^5.22
- yiisoft/di: ^1.1
This package is auto-updated.
Last update: 2024-09-18 05:03:15 UTC
README
Yii 数据响应
该包允许以自动转换为 PSR-7 响应的数据进行响应。
要求
- PHP 8.1 或更高版本。
DOM
PHP 扩展。
安装
可以使用 Composer 安装此包
composer require yiisoft/data-response
通用用法
该包提供了一个 DataResponseFactory
类,它接受一个 PSR-17 响应工厂,能够创建数据响应。
数据响应包含后续要处理的原始数据。
use Yiisoft\DataResponse\DataResponseFactory; /** * @var Psr\Http\Message\ResponseFactoryInterface $responseFactory */ $factory = new DataResponseFactory($responseFactory); $dataResponse = $factory->createResponse('test'); $dataResponse ->getBody() ->rewind(); echo $dataResponse ->getBody() ->getContents(); // "test"
格式化程序
格式化程序的作用是将数据响应格式化。在以下示例中,我们将数据格式化为 JSON。
use Yiisoft\DataResponse\DataResponseFactory; use Yiisoft\DataResponse\Formatter\JsonDataResponseFormatter; /** * @var Psr\Http\Message\ResponseFactoryInterface $responseFactory */ $factory = new DataResponseFactory($responseFactory); $dataResponse = $factory->createResponse('test'); $dataResponse = $dataResponse->withResponseFormatter(new JsonDataResponseFormatter()); $dataResponse ->getBody() ->rewind(); echo $dataResponse->getHeader('Content-Type'); // ["application/json; charset=UTF-8"] echo $dataResponse ->getBody() ->getContents(); // "test"
以下格式化程序可用:
HtmlDataResponseFormatter
JsonDataResponseFormatter
XmlDataResponseFormatter
PlainTextDataResponseFormatter
中间件
该包提供了一个能够格式化数据响应的 PSR-15 中间件。
use Yiisoft\DataResponse\Middleware\FormatDataResponse; use Yiisoft\DataResponse\Formatter\JsonDataResponseFormatter; $middleware = (new FormatDataResponse(new JsonDataResponseFormatter())); //$middleware->process($request, $handler);
此外,该包还提供了用于内容协商的 PSR-15 中间件
use Yiisoft\DataResponse\Formatter\HtmlDataResponseFormatter; use Yiisoft\DataResponse\Formatter\XmlDataResponseFormatter; use Yiisoft\DataResponse\Formatter\JsonDataResponseFormatter; use Yiisoft\DataResponse\Middleware\ContentNegotiator; $middleware = new ContentNegotiator([ 'text/html' => new HtmlDataResponseFormatter(), 'application/xml' => new XmlDataResponseFormatter(), 'application/json' => new JsonDataResponseFormatter(), ]);
您可以使用 withContentFormatters()
方法覆盖中间件
$middleware->withContentFormatters([ 'application/xml' => new XmlDataResponseFormatter(), 'application/json' => new JsonDataResponseFormatter(), ]);
文档
如果您需要帮助或有问题,您可以访问 Yii 论坛。您还可以查看其他 Yii 社区资源。
许可
Yii 数据响应是自由软件。它根据 BSD 许可协议发布。有关更多信息,请参阅 LICENSE
。
由 Yii Software 维护。