2017 © Pedro Peláez
 

symfony-bundle guzzle-bundle

Integration bundle for guzzle with Symfony.

image

caciobanu/guzzle-bundle

Integration bundle for guzzle with Symfony.

  • Tuesday, June 19, 2018
  • by caciobanu
  • Repository
  • 1 Watchers
  • 0 Stars
  • 16 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 60 % Grown

The README.md

Guzzle Symfony Bundle

This is a Symfony bundle that integrates Guzzle for easier use., (*1)

Build Status Code Coverage, (*2)

Installation

You can use Composer to install the extension to your project:, (*3)

composer require caciobanu/guzzle-bundle

Then create a minimal config file caciobanu_guzzle.yml in config/packages/:, (*4)

caciobanu_guzzle:
    clients:
        google:
            base_uri: 'https://google.com'

A complete configuration looks like:, (*5)

caciobanu_guzzle:
    clients:
        google:
            client_class: 'Your\Client'    # You must extend 'GuzzleHttp\Client' which is the default value.
            base_uri: 'https://google.com'
            logging: true                  # Enable logging. Default value: false.
            options:                       # See http://docs.guzzlephp.org/en/stable/request-options.html for all available options.
                timeout: 30
                headers:
                    'User-Agent': 'Test Agent'

Usage

Using services in controller:, (*6)

/** @var \GuzzleHttp\Client $client */
$client   = $this->get('caciobanu_guzzle.client.google');
$response = $client->get('/');

Adding Guzzle middleware

Adding a Guzzle middleware is a two step process:, (*7)

  1. Create a new class:
<?php

namespace App\Guzzle\Middleware;

use Caciobanu\Symfony\GuzzleBundle\Middleware\BeforeRequestMiddlewareInterface;
use Psr\Http\Message\RequestInterface;

class MyMiddleware implements BeforeRequestMiddlewareInterface
{
    public function __invoke(RequestInterface $request): RequestInterface
    {
        // Do something with the request
        return $request;
    }
}
  1. Create a Symfony service like so:
# config/services.yaml
services:
    App\Guzzle\Middleware\MyMiddleware:
        tags:
            - { name: 'caciobanu_guzzle.middleware', client: 'google' }

There are three middleware interfaces that can be implemented: - Caciobanu\Symfony\GuzzleBundle\Middleware\BeforeRequestMiddlewareInterface - marks middleware to be called before sending the request - Caciobanu\Symfony\GuzzleBundle\Middleware\AfterResponseMiddlewareInterface - marks middleware to be called after the response is received - Caciobanu\Symfony\GuzzleBundle\Middleware\OnErrorMiddlewareInterface - marks middleware to be called when an errors occurs - Caciobanu\Symfony\GuzzleBundle\Middleware\RetryMiddlewareInterface - offers the possibility to retry requests, (*8)

Credits

This library is developed by Catalin Ciobanu., (*9)

License

license, (*10)

The Versions