mordilion / split-test
A library to get the ability of split testing (A/B testing)
Installs: 25 238
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 4
Forks: 0
Open Issues: 0
Requires
- php: >=7.1 || >=8.0
- ext-iconv: *
Requires (Dev)
- phpunit/phpunit: ^9.0
- vimeo/psalm: ^3.8
README
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!