dimgraycat / split-testing
A server-side A/B/n testing tool
Installs: 10 303
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=5.6
Requires (Dev)
- phpunit/phpunit: ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0
- squizlabs/php_codesniffer: ^2.9 || ^3.5
This package is auto-updated.
Last update: 2024-12-11 15:08:19 UTC
README
SplitTesting
A server-side A/B/n testing tool
This library provides a layer to run AB tests on your applications. The "SplitTesting" is useful when you want to change something on the application, but you want to check the optimize by using various variations.
Installation
$ composer require dimgraycat/split-testing
{ "require": { "dimgraycat/split-testing": "^1.0" } }
And install dependencies:
$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar install
Usage
Random
<?php use Ab\SplitTesting; $params = array( 'use' => 'random', 'variation' => array( 'foo', 'bar', 'baz' ); ); $result = SplitTesting::get($params); // $seed is optional // e.g.) userId, IpAddress $seed = 1234; echo SplitTesting::get($params, $seed);
Rate (Roulette)
<?php use Ab\SplitTesting; $params = array( 'use' => 'rate', 'variation' => array( 'rate' => array( // 1 => 0.1%, 50 => 5%, 500 => 50%, 1000 => 100% 'foo' => 50, 'bar' => 20, 'baz' => 500, ), 'list' => array( 'default' => array('hoge'), 'a' => '5%', 'hoge' => 1234567890, 'moge' => '123456789', ), ), ); echo SplitTesting::get($params);
PatternMatch
<?php use Ab\SplitTesting; $params = array( 'use' => 'pattern', 'variation' => array( 'pattern' => array( 'foo' => '/[0-9]$/', 'bar' => '/z$/', ), 'list' => array( 'default' => 'default', 'foo' => 'hit 1!', 'bar' => 'hit 2!' ), ), ); $seed = 1234; // required echo SplitTesting::get($params, $seed); // hit 1!