This package is not installable via Composer 1.x, please make sure you upgrade to Composer 2+. Read more about our Composer 1.x deprecation policy.

Helper for creating PSR-7 request with files

v1.0.1 2020-11-04 11:56 UTC

This package is auto-updated.

Last update: 2021-06-04 13:19:15 UTC


Latest Stable Version Total Downloads License PHP


Helper for creating PSR-7 request with files.


Install this package and your favorite psr-17 implementation.

composer require webclient/helper-form:^1.0

Now it’s very easy to create file requests for PSR-18 HTTP Clients!



use Psr\Http\Message\RequestFactoryInterface;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\StreamFactoryInterface;
use Webclient\Helper\Form\Wizard;

 * @var RequestFactoryInterface $requestFactory
 * @var StreamFactoryInterface $streamFactory
$wizard = new Wizard($requestFactory, $streamFactory);

$fh = fopen('/home/user42/.ssh/id_psa.pub', 'r+');

/** @var RequestInterface $request */
$request = $wizard
    ->createForm('http://localhost:8080/path?query=webclient#fragment', 'POST')
    ->addField('sign_up[login]', 'user42')
    ->addField('sign_up[password]', '$ecr3t')
    ->uploadFromString('about', 'hi!', 'about.txt', 'text/plain; charset=UTF-8')
    ->uploadFromFile('photo', '/home/user42/images/DCIM_4564.JPEG', 'image/jpeg', 'avatar.jpg')
    ->uploadFromResource('public_ssh_key', $fh, 'id_sra.pub', 'text/plain')