-
-
Notifications
You must be signed in to change notification settings - Fork 77
Open
Description
Feature Request
| Q | A |
|---|---|
| New Feature | yes |
| RFC | no |
| BC Break | no |
Summary
Hey there 👋
I'm working on a project that could use the Laminas\Diactoros\Request\ArraySerializer and Laminas\Diactoros\Response\ArraySerializer. However I don't want to force the users of my package to use the laminas-diactoros PSR-7 implementation.
Any chance the serializers could be altered to use the PSR-17 factories and extracted to a separate package? I.e. something like this:
<?php
declare(strict_types=1);
namespace Laminas\Diactoros\Serializer;
use Psr\Http\Message\RequestFactoryInterface;
use Psr\Http\Message\StreamFactoryInterface;
use Psr\Http\Message\RequestInterface;
use Throwable;
use function sprintf;
final class ArraySerializer
{
private RequestFactoryInterface $requestFactory;
private StreamFactoryInterface $streamFactory;
public function __construct(
\Psr\Http\Message\RequestFactoryInterface $requestFactory,
\Psr\Http\Message\StreamFactoryInterface $streamFactory
) {
$this->requestFactory = $requestFactory;
$this->streamFactory = $streamFactory;
}
public static function toArray(RequestInterface $request) : array
{
// ...
}
public function fromArray(array $serializedRequest) : RequestInterface
{
$uri = self::getValueFromKey($serializedRequest, 'uri');
$method = self::getValueFromKey($serializedRequest, 'method');
$request = $this->requestFactory->createRequest($method, $uri);
$body = $this->streamFactory->createStream(self::getValueFromKey($serializedRequest,
'body'));
// ...
}
}Thanks!
Reactions are currently unavailable