PHPackages                             mordilion/split-test - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mordilion/split-test

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

mordilion/split-test
====================

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

v1.0.0(2mo ago)241.8k↓61.4%MITPHPPHP &gt;=8.1CI passing

Since Feb 13Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/mordilion/SplitTest)[ Packagist](https://packagist.org/packages/mordilion/split-test)[ RSS](/packages/mordilion-split-test/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (10)Dependencies (4)Versions (16)Used By (0)

SplitTest
=========

[](#splittest)

A lightweight PHP library for deterministic A/B and multivariate testing. Assign visitors to experiment variations using seed-based bucketing, keep their choice consistent across requests via cookies or headers, and plug in your own selection strategies whenever the defaults are not enough.

Features
--------

[](#features)

- **Deterministic bucketing** — the same seed always produces the same variation, so visitors see a consistent experience across sessions and requests.
- **Weighted distributions** — split traffic across any number of variations with arbitrary weights.
- **Pluggable chooser strategies** — ship with `Random`, `Balanced`, `Static` and `Callback` choosers, or implement your own via `ChooserInterface`.
- **Groups** — override the default variations for specific visitor cohorts (logged-in users, regions, feature flags, …).
- **String serialization** — round-trip experiments via cookies or headers with `fromString()` / `__toString()`.
- **Persistence helper** — `Container::deliver()` writes the assignment cookie and header in one call.
- **Selection callbacks** — hook variation assignment into your analytics or tracking pipeline.
- **Small surface area** — four model classes, four choosers, one container.

Requirements
------------

[](#requirements)

- PHP **8.1+**
- `ext-iconv`

Installation
------------

[](#installation)

```
composer require mordilion/split-test
```

Quick Start
-----------

[](#quick-start)

```
