frdl/proxy

v0.1.6 2022-08-24 17:17 UTC

README

Simple Php Proxy based on Guzzle.

Installation

Use Composer...

composer require frdl/proxy

...or the Webfan Installer if you would like to build a larger project.

Usage

<?php
use frdl\Proxy\Proxy;

 require 'vendor/autoload.php'; 
 
 	$proxy = (new Proxy(null,
                      $_SERVER['REQUEST_URI'],
                      'green.example.com',  //target host
                      $_SERVER['HTTP_HOST'],  //User Input, forward optionaly*
                      $_SERVER['REQUEST_METHOD'], 
                      'https', 
                      false))
        ->withFakeHost(true) //*Do overwrite/not use users host header
        //...or...
        ->withFakeHeader('X-Forwarded-Host')
    ;
    
	$proxy->handle(true);

Internally the proxy ignores the bounce-detection silently to fallback to any localhost scripts. You can use it before/without handling the HTTP-Forwarding, e.g. to perform a (test-)request on the same host.

<?php
if(!$proxy->bounce()){	
 	$proxy = (new Proxy('blue',
                      $_SERVER['REQUEST_URI'],
                      'blue.example.com',  //target host
                      'example.com',  //set the host header on the target script
                      $_SERVER['REQUEST_METHOD'], 
                      'https', 
                      true))
  ->handle(true);                    
}

Cache

Built in cache feature:

composer require doctrine/cache
$proxy->withCacheDir(string $dir = null, int $ttl= 1800, bool $force=true)