/** * Construct an Experiment from an Array of data */ public static function fromArray($options) { $name = "\\Myna\\Data\\Experiment::fromArray"; $uuid = \Myna\Arr::get_or_error($options, 'uuid', $name); $id = \Myna\Arr::get_or_error($options, 'id', $name); $settings = Settings::fromArray(\Myna\Arr::get($options, 'settings', array())); $variants = array(); $vars = \Myna\Arr::get($options, 'variants', array()); foreach ($vars as $data) { $variants[$data['id']] = Variant::fromArray($data); } return new Experiment($uuid, $id, $settings, $variants); }