webclient/helper-form

Helper for creating PSR-7 request with files

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

This package is auto-updated.

Last update: 2024-04-04 19:40:11 UTC


README

Latest Stable Version Total Downloads License PHP

webclient/helper-form

Helper for creating PSR-7 request with files.

Install

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!

Using

<?php

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')
    ->createRequest()
;