perfocard / gate
A package for Laravel that globally configures a proxy for all outgoing Http Client requests.
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/perfocard/gate
Requires
- php: ^8.1
- illuminate/support: ^9.0|^10.0|^11.0|^12.0
README
A lightweight package for Laravel that globally configures the Laravel HTTP Client (Illuminate\Support\Facades\Http) to use a proxy for all outgoing requests.
Features
- Globally injects the
proxyoption into all outgoing HTTP requests - Configurable via
config/gate.php - Simple enable/disable switch
- Throws a clear exception if misconfigured
- Supports
http,https,socks5, etc.
Installation
composer require perfocard/gate
Configuration
Publish the configuration file:
php artisan vendor:publish --provider="Perfocard\Gate\GateServiceProvider" --tag=config
This will create a file at config/gate.php:
return [ 'enabled' => env('GATE_ENABLED', false), // You can specify a single URL or an array of URLs 'urls' => env('GATE_URLS'), // e.g., http://localhost:8080 or socks5://127.0.0.1:9050 ];
In your .env file:
GATE_ENABLED=true
GATE_URLS=http://localhost:8080,http://proxy2:8080,socks5://127.0.0.1:9050
Usage
Once enabled, all HTTP requests using Laravel's HTTP client will automatically include the proxy option:
use Illuminate\Support\Facades\Http; $response = Http::get('https://example.com');
No manual configuration per request is needed.
If you specify multiple URLs in GATE_URLS, Gate will automatically select one of them at random for each application run.
Notes
- If
gate.enabled = truebut no valid proxy URLs are set, aGateNotConfiguredexception will be thrown. - You can specify multiple proxy URLs (comma-separated in the env file or as an array in the config file). One of them will be selected at random.
- Internally, this package uses
Http::globalOptions()to apply the proxy globally.
License
This package is open-sourced software licensed under the MIT license.