Skip to content

noqcks/php-dark-launch

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHP Dark Launch

Join the chat at https://gitter.im/telusdigital/php-dark-launch Code Climate Build Status

A PHP library to dark launch features

What is dark launching?

Table of contents

Installation

composer require telusdigital/darklaunch

Usage

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);

Tunables:

  • $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);

Config

Dark Launch defaults can be one of three types

  1. boolean A feature is enabled when value is TRUE
['type' => 'boolean', 'value' => TRUE]
  1. time A feature is enabled if in between start and stop time
['type' => 'time', 'start' => 1419451200, 'stop' => 1420056000]
  1. percentage A feature is enabled X % of the time
['type' => 'percentage', 'value' => 30]

Methods

feature_enabled()

Returns TRUE if a feature is enabled

$this->dark_launch->feature_enabled('my-awesome-feature');

projects()

Returns a list of projects

$this->dark_launch->projects();

users()

Returns a list of users for a project

$this->dark_launch->users();

features()

Returns a list of features for a project and user

$this->dark_launch->features();

get_feature()

Returns an associative array with attributes about a feature

$this->dark_launch->get_feature('my-awesome-feature');
// return = ['type' => 'boolean', 'value' => 'true']

enable_feature()

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);

disable_feature()

Disables a dark launch feature

$this->dark_launch->disable_feature('my-awesome-feature');

Running Tests

vendor/behat/behat/bin/behat

License

MIT

Contributors

About

A Dark Launching library for PHP

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 96.7%
  • Gherkin 3.3%