1. Go to this page and download the library: Download pluggit/feature-balancer library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
pluggit / feature-balancer example snippets
$balancer = (new BalancerBuilder())
->withLogger($logger, LogLevel::INFO)
->withMonitor($monitor, "my_app.feature_balanced")
->create([
"home_banner" => [
"do_not_show" => 20,
"amazing_offer" => 80,
],
"after_update_email" => [
"normal" => 60,
"special_offer" => 30,
"do_not_send" => 10,
]
]);
/**
* Random Non-deterministic balance
* - 20% change to get "do_not_show", 80% chance to get "amazing_offer"
*/
$path = $balancer->get("home_banner");
/**
* Deterministic balance, given a configuration and a valid seed,
* you'll always get the same result
*
* Valid seeds are non-empty strings and unsigned numbers
*/
$path = $balancer->get("after_update_email", 78549612);
$path = $balancer->get("after_update_email", -4.75);
$path = $balancer->get("after_update_email", "[email protected]");
$balancer = (new BalancerBuilder())->create();
// Add a logger when building the balancer
$balancer = (new BalancerBuilder())->->withLogger($logger, LogLevel::DEBUG)->create($config);
/**
* This will log: "Feature path returned from the balancer: home_banner -> amazing_offer"
* Plus some context information:
* - feature
* - path
* - seed
*/
$balancer->get("home_banner", 9874562);
// Add a monitor when building the balancer
$balancer = (new BalancerBuilder())->->withMonitor($monitor, "balanced_feature")->create($config);
/**
* This will increment the metric: "balanced_feature", plus some tags
* - feature
* - path
* - seed: true/false
*/
$balancer->get("home_banner", 9874562);
// Add a monitor when building the balancer
$balancer = (new BalancerBuilder())->->withoutExceptions()->create($config);
/**
* Requesting an unknown feature will return an empty string -> ""
*/
$balancer->get("unknown_feature");