helper form
1.0.1
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!
<?php
use PsrHttpMessageRequestFactoryInterface;
use PsrHttpMessageRequestInterface;
use PsrHttpMessageStreamFactoryInterface;
use WebclientHelperFormWizard;
/**
* @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')
->createRequest()
;