Giter VIP home page Giter VIP logo

guzzle-psr18-adapter's Introduction

guzzle-psr18-adapter

Build Status Minimum PHP Version License Total Downloads Coding Standards

A (very) simple guzzle PSR-18 adapter.

Requirements

  • PHP ^7.1 || ^8.0
  • Guzzle ^6.3

Install

Via Composer

$ composer require ricardofiorani/guzzle-psr18-adapter

Usage

$client = new \RicardoFiorani\GuzzlePsr18Adapter\Client();
$request = new \Your\Implementation\Of\Psr7\Request();
try {
    echo $client->sendRequest($request);
} catch (\Psr\Http\Client\ClientExceptionInterface $exception) {
    // your error handling
}

For futher documentation please see http://docs.guzzlephp.org/en/stable/

Testing

$ composer test

Credits

guzzle-psr18-adapter's People

Contributors

dependabot-preview[bot] avatar makinami avatar ricardofiorani avatar stof avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

guzzle-psr18-adapter's Issues

GuzzleHttp\Exception\BadResponseException requires a Response object

While I was preparing my package for PSR-18 and used your Guzzle adapter for it, I hit the following error message: Instantiating the GuzzleHttp\Exception\BadResponseException class without a Response is deprecated since version 6.3 and will be removed in 7.0.

The stack trace:

 vendor/guzzlehttp/guzzle/src/Exception/BadResponseException.php:22
 vendor/ricardofiorani/guzzle-psr18-adapter/src/Client.php:42

The fix is fairly easy: Just adding a GuzzleHttp\Psr7\Response instantiation when an exception is raised.

    public function sendRequest(RequestInterface $request): ResponseInterface
    {
        try {
            return $this->send($request);
        } catch (GuzzleException $e) {
            $response = new Response();
            throw new ClientException($e->getMessage(), $request, $response, $e);
        }
    }

Maybe you want to instantiate the Response object outside this client extension, but for now it's a quick win.

Need new Tag for the bugfix

Hi the bug of "provide" a library which is not in the 1.0.3 is a problem for us. Could you please create a new Tag with the fix.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.