/** * Construct a Variant from an Array of data */ public static function fromArray($options) { $name = "\\Myna\\Data\\Variant::fromArray"; $id = \Myna\Arr::get_or_error($options, 'id', $name); $name = \Myna\Arr::get($options, 'name', $id); $weight = \Myna\Arr::get_or_error($options, 'weight', $name); $settings = Settings::fromArray(\Myna\Arr::get($options, 'settings', array())); return new Variant($id, $name, $weight, $settings); }
/** * 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); }
/** * Construct a Deployment from an Array of data, typically from * JSON from the API. */ public static function fromArray($options) { $name = "\\Myna\\Data\\Deployment::fromArray"; $uuid = \Myna\Arr::get_or_error($options, 'uuid', $name); $apiKey = \Myna\Arr::get_or_error($options, 'apiKey', $name); $apiRoot = \Myna\Arr::get_or_error($options, 'apiRoot', $name); $latest = \Myna\Arr::get_or_error($options, 'latest', $name); $experiments = array(); $expts = \Myna\Arr::get($options, 'experiments', array()); foreach ($expts as $expt) { array_push($experiments, Experiment::fromArray($expt)); } return new Deployment($uuid, $apiKey, $apiRoot, $latest, $experiments); }