ihsw / toxiproxy-php-client
PHP client for shopify/toxiproxy
Installs: 3 065
Dependents: 4
Suggesters: 0
Security: 0
Stars: 30
Watchers: 1
Forks: 3
Open Issues: 1
Requires
- php: ^8.3
- ext-json: *
- guzzlehttp/guzzle: ^7.9
Requires (Dev)
- keboola/coding-standard: ^15.1
- phpstan/phpstan: ^2.1
- phpstan/phpstan-phpunit: ^2.0
- phpunit/phpunit: ^12.1
- squizlabs/php_codesniffer: ^3.12
README
Toxiproxy makes it easy and trivial to test network conditions, for example low-bandwidth and high-latency situations. toxiproxy-php-client
includes everything needed to get started with configuring Toxiproxy upstream connection and listen endpoints.
Note: toxiproxy-php-client
is currently compatible with toxiproxy-2.0+
.
Installing via Composer
The recommended way to install toxiproxy-php-client
is through Composer.
Once that is installed and you have added ihsw/toxiproxy-php-client
to your composer.json
configuration, you can require the autoloader and start using the library.
Here is an example for creating a proxy that limits a Redis connection to 1000KB/s.
<?php require("./vendor/autoload.php"); use Ihsw\Toxiproxy\Toxiproxy; use Ihsw\Toxiproxy\ToxicTypes; use Ihsw\Toxiproxy\StreamDirections; $toxiproxy = new Toxiproxy("http://toxiproxy:8474"); $proxy = $toxiproxy->create("ihsw_example_redis_master", "127.0.0.1:6379"); $toxic = $proxy->create(ToxicTypes::BANDWIDTH->value, StreamDirections::UPSTREAM->value, 1.0, [ "rate" => 1000 ]); printf( "Listening on IP %s and port %s on behalf of 6379, with a connection that's limited to 1000KB/s\n", $proxy->getListenIp(), $proxy->getListenPort() ); $toxiproxy->delete($proxy);
Documentation
Additional examples can be found in the examples
directory for expected usage.