Skip to content

A library to get the ability of split testing (A/B testing)

License

Notifications You must be signed in to change notification settings

mordilion/SplitTest

Repository files navigation

SplitTest

It's a small library to get the ability of adding your own split testing (A/B testing) logic to your project.

Simple usage

<?php

use Mordilion\SplitTest\Container;
use Mordilion\SplitTest\Model\Experiment;

// receive seed cookie if available
$seed = $_COOKIE['seed'] ?? time();

$experimentName = 'an-experiment';

// set up the container with tests
$container = new Container();
$experiment = new Experiment($experimentName, true);
$experiment->addVariation(new Experiment\Variation('a', 50)); // 50%
$experiment->addVariation(new Experiment\Variation('b', 50)); // 50%
$container->addExperiment($experiment);

// select the variation based on the provided seed
$variation = $container->getExperimentVariation($experimentName);

if ($variation === null) {
    // happens only, if the experiment wasn't defined
    throw new \RuntimeException(sprintf('Experiment "%s" does not exist!', $experimentName));
}

if ($variation->getName() === 'b') {
  echo 'Variation B';
} else {
  echo 'Variation A';
}

// set seed cookie for next visit
setcookie('seed', $seed, time() + (3600 * 24 * 30)); // 30 days valid - after 30 days the user is unknown!

About

A library to get the ability of split testing (A/B testing)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages