daylerees/scientist

A PHP experimentation library inspired by Github's own Scientist.

PHP

780

55 commits

updated Dec 20, 2023

See the code

README

Scientist

Scientist

Build Status Scrutinizer Code Quality Code Coverage Code Climate

Packagist Version Packagist

A PHP experiment library inspired by Github's own Scientist.


Introduction

Scientist is an experimentation framework for PHP that will allow you to refactor and improve upon existing code in a live environment, without incurring risk or breakages.

Simply define an experiment, sit back, and let the results flow in.

<?php

// We need a Laboratory to do science.
$experiment = (new Scientist\Laboratory)

    // Define an experiment with a name.
    ->experiment('experiment title')
    
    // Set a callback containing our control code.
    ->control($controlCallback)
    
    // Set a callback containing our trial code.
    ->trial('trial name', $trialCallback);

// Run the experiment, receiving the control return value.
$value = $experiment->run();

A more detailed description, and full documentation is available.

User Contributed Resources

Users of scientist contribute a variety of resources to enhance the functionality of the application.

Journals

Journals allow experiment data to be sent to data stores for later inspection.

Bridges

Bridges allow for Scientist to be used seamlessly with other frameworks and libraries.

Matchers

Matchers allow for complex types to be matched.

Interfaces

Interfaces allow for experiment data to be viewed in a clear way.

daylerees/scientist

A PHP experimentation library inspired by Github's own Scientist.

PHP

780

55 commits

updated Dec 20, 2023

See the code

README

Scientist

Scientist

Build Status Scrutinizer Code Quality Code Coverage Code Climate

Packagist Version Packagist

A PHP experiment library inspired by Github's own Scientist.


Introduction

Scientist is an experimentation framework for PHP that will allow you to refactor and improve upon existing code in a live environment, without incurring risk or breakages.

Simply define an experiment, sit back, and let the results flow in.

<?php

// We need a Laboratory to do science.
$experiment = (new Scientist\Laboratory)

    // Define an experiment with a name.
    ->experiment('experiment title')
    
    // Set a callback containing our control code.
    ->control($controlCallback)
    
    // Set a callback containing our trial code.
    ->trial('trial name', $trialCallback);

// Run the experiment, receiving the control return value.
$value = $experiment->run();

A more detailed description, and full documentation is available.

User Contributed Resources

Users of scientist contribute a variety of resources to enhance the functionality of the application.

Journals

Journals allow experiment data to be sent to data stores for later inspection.

Bridges

Bridges allow for Scientist to be used seamlessly with other frameworks and libraries.

Matchers

Matchers allow for complex types to be matched.

Interfaces

Interfaces allow for experiment data to be viewed in a clear way.

Significant stargazers

Maxime Steinhausser

189 followers · starred Nov 2018

Joel Wurtz

198 followers · starred Feb 2016

Ryan McCue

619 followers · starred Feb 2016

Pádraic Brady

598 followers · starred Feb 2016