A PHP library to dark launch features
composer require telusdigital/darklaunch
Initialize a Dark Launch object:
use TelusDigital\Dark_Launch;
// Dark Launching requires a redis instance to use
$redis = new Redis();
$redis->connection('127.0.0.1');
$params = ['redis' => $redis];
$dark_launch = new Dark_Launch($params);
- $redis - obj - send a redis instance to it
- $project - string the name of the project
- $user - string - the name of the user dark launching
- $config - array - an array of default dark launch values
// $redis
$redis = new Redis();
$redis->connect('127.0.0.1');
// $config
// this can be from a codeigniter config
// e.g $this->load->config('dark_launch');
// $config = $this->config->item('dark_launch_features');
$config = ['feature-1' => ['type' => 'boolean', 'value' => TRUE], 'feature-1' => ['type' => percentage, 'value' => 30]];
// passing params to Dark_Launch constructor
$params = ['redis' => $redis, 'config' => $config, 'user' => 'ben', 'project' => 'my-awesome-project']
$dark_launch = new Dark_Launch($params);
Dark Launch defaults can be one of three types
- boolean A feature is enabled when value is TRUE
['type' => 'boolean', 'value' => TRUE]
- time A feature is enabled if in between start and stop time
['type' => 'time', 'start' => 1419451200, 'stop' => 1420056000]
- percentage A feature is enabled X % of the time
['type' => 'percentage', 'value' => 30]
Returns TRUE if a feature is enabled
$this->dark_launch->feature_enabled('my-awesome-feature');
Returns a list of projects
$this->dark_launch->projects();
Returns a list of users for a project
$this->dark_launch->users();
Returns a list of features for a project and user
$this->dark_launch->features();
Returns an associative array with attributes about a feature
$this->dark_launch->get_feature('my-awesome-feature');
// return = ['type' => 'boolean', 'value' => 'true']
Enables a dark launch feature
$feature_name = 'my-awesome-feature'
$feature_value = ['type' => 'percent', 'value' => 30]
$this->dark_launch->enable_feature($feature_name, $feature_value);
Disables a dark launch feature
$this->dark_launch->disable_feature('my-awesome-feature');
vendor/behat/behat/bin/behat