The package allows responding with data that is automatically converted into PSR-7 response.
The package provides DataResponseFactory
class that, given a PSR-17 response factory, is able to create data response. In this example we use nyholm/psr7
pacakge but any PSR-17 response factory would do.
Data response contains raw data to be processed later.
use Nyholm\Psr7\Factory\Psr17Factory;
use Yiisoft\DataResponse\DataResponseFactory;
$factory = new DataResponseFactory(new Psr17Factory());
$dataResponse = $factory->createResponse('test');
$dataResponse->getBody()->rewind();
echo $dataResponse->getBody()->getContents(); //test
Formatter purpose if to format data response. In the following example we format data as JSON.
use Nyholm\Psr7\Factory\Psr17Factory;
use Yiisoft\DataResponse\DataResponseFactory;
use Yiisoft\DataResponse\Formatter\JsonDataResponseFormatter;
$factory = new DataResponseFactory(new Psr17Factory());
$dataResponse = $factory->createResponse('test');
$dataResponse = $dataResponse->withResponseFormatter(new JsonDataResponseFormatter());
$dataResponse->getBody()->rewind();
echo $dataResponse->getHeader('Content-Type'); //application/json
echo $dataResponse->getBody()->getContents(); //"test"
The following formatters are available:
- HtmlDataResponseFormatter
- JsonDataResponseFormatter
- XmlDataResponseFormatter
The package provides a PSR-15 middleware that is able to format a data response.
use Yiisoft\DataResponse\Middleware\FormatDataResponse;
use Yiisoft\DataResponse\Formatter\JsonDataResponseFormatter;
$middleware = (new FormatDataResponse(new JsonDataResponseFormatter()));
//$middleware->process($request, $handler);
The package is tested with PHPUnit. To run tests:
./vendor/bin/phpunit
The package tests are checked with Infection mutation framework. To run it:
./vendor/bin/infection
The code is statically analyzed with Psalm. To run static analysis:
./vendor/bin/psalm
The Data response is free software. It is released under the terms of the BSD License.
Please see LICENSE
for more information.
Maintained by Yii Software.