A Dark Launching library for PHP
Branch: master
Clone or download
Pull request Compare This branch is 41 commits ahead of gotofbi:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
application
features
src/TelusDigital
.gitignore
.travis.yml
LICENSE
README.md
composer.json

README.md

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