/** * Make a new experiment with given variants * * @since 0.1.0 * * @param array $variants * @param int|string $id Experiment (group) ID * @param \MaBandit\MaBandit $bandit MaBandit object */ public function __construct(array $variants, $id, \MaBandit\MaBandit $bandit) { $this->experiment = $bandit->createExperiment((string) $id, $variants); if (method_exists($bandit->getPersistor(), 'save_levers')) { $bandit->getPersistor()->batchSave($this->experiment->getLevers(), $id); } }
public function chooseLever(\MaBandit\Experiment $experiment, $increment = true) { $levers = $experiment->getLevers(); if (1 == count($levers)) { $lever = $levers[0]; } else { $lever = $this->getStrategy()->chooseLever($experiment); } if ($increment) { $lever->incrementDenominator(); return $this->validateLever($this->getPersistor()->saveLever($lever)); } else { return $lever; } }
public function chooseLever(\MaBandit\Experiment $experiment) { $levers = $experiment->getLevers(); return $this->shouldExplore($levers) ? $this->chooseExploratoryLever($levers) : $this->getWinner($levers); }