2017 © Pedro Peláez
 

library proxy

Proxy library that forwards requests to the desired url and returns the response.

image

jenssegers/proxy

Proxy library that forwards requests to the desired url and returns the response.

  • Saturday, May 12, 2018
  • by jenssegers
  • Repository
  • 30 Watchers
  • 386 Stars
  • 86,912 Installations
  • PHP
  • 7 Dependents
  • 0 Suggesters
  • 94 Forks
  • 6 Open issues
  • 10 Versions
  • 5 % Grown

The README.md

PHP Proxy

Build Status Coverage Status, (*1)

This is a HTTP/HTTPS proxy script that forwards requests to a different server and returns the response. The Proxy class uses PSR7 request/response objects as input/output, and uses Guzzle to do the actual HTTP request., (*2)

Installation

Install using composer:, (*3)

composer require jenssegers/proxy

Example

The following example creates a request object, based on the current browser request, and forwards it to example.com. The RemoveEncodingFilter removes the encoding headers from the original response so that the current webserver can set these correctly., (*4)

use Proxy\Proxy;
use Proxy\Adapter\Guzzle\GuzzleAdapter;
use Proxy\Filter\RemoveEncodingFilter;
use Laminas\Diactoros\ServerRequestFactory;

// Create a PSR7 request based on the current browser request.
$request = ServerRequestFactory::fromGlobals();

// Create a guzzle client
$guzzle = new GuzzleHttp\Client();

// Create the proxy instance
$proxy = new Proxy(new GuzzleAdapter($guzzle));

// Add a response filter that removes the encoding headers.
$proxy->filter(new RemoveEncodingFilter());

try {
    // Forward the request and get the response.
    $response = $proxy->forward($request)->to('http://example.com');

    // Output response to the browser.
    (new Laminas\HttpHandlerRunner\Emitter\SapiEmitter)->emit($response);
} catch(\GuzzleHttp\Exception\BadResponseException $e) {
    // Correct way to handle bad responses
    (new Laminas\HttpHandlerRunner\Emitter\SapiEmitter)->emit($e->getResponse());
}

Filters

You can apply filters to the requests and responses using the middleware strategy:, (*5)

$response = $proxy
    ->forward($request)
    ->filter(function ($request, $response, $next) {
        // Manipulate the request object.
        $request = $request->withHeader('User-Agent', 'FishBot/1.0');

        // Call the next item in the middleware.
        $response = $next($request, $response);

        // Manipulate the response object.
        $response = $response->withHeader('X-Proxy-Foo', 'Bar');

        return $response;
    })
    ->to('http://example.com');

The Versions

30/10 2015
05/10 2015
05/04 2015

v2.2.1

2.2.1.0 https://github.com/jenssegers/php-proxy

Proxy library that forwards requests to the desired url and returns the response.

  Sources   Download

MIT

The Requires

 

The Development Requires

proxy

10/01 2015

dev-guzzle5

dev-guzzle5 https://github.com/jenssegers/php-proxy

Proxy library that forwards requests to the desired url and returns the response.

  Sources   Download

MIT

The Requires

 

The Development Requires

proxy

10/01 2015

v2.2.0

2.2.0.0 https://github.com/jenssegers/php-proxy

Proxy library that forwards requests to the desired url and returns the response.

  Sources   Download

MIT

The Requires

 

The Development Requires

proxy

08/09 2014

v2.1.1

2.1.1.0 https://github.com/jenssegers/php-proxy

Proxy library that forwards requests to the desired url and returns the response.

  Sources   Download

MIT

The Requires

 

The Development Requires

proxy

16/08 2014

v2.1.0

2.1.0.0 https://github.com/jenssegers/php-proxy

Proxy library that forwards requests to the desired url and returns the response.

  Sources   Download

MIT

The Requires

 

The Development Requires

proxy

10/08 2014