Home

Awesome

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.