public function validate() { $gateway = new $this->provider(); Params::arrayToObject($this, $gateway); return $gateway->validate(); }
/** * Merges the current object with the specified associtive array. Colon properties will * be marked up to their respective objects. For instance, if your object is * * class X extends RequestObject * { * public $objProp; * } * * and the $with is * * objProp:value1 * * then $this->objProp->value1 will be set accordingly. * * @param array $with an associtive array of items to merge * @return void */ public function merge(&$with) { Params::arrayToObject($with, $this); $objs = array(); foreach ($with as $key => $value) { $m = array(); if (preg_match('/^(\\w+)[:](\\w+)/', $key, $m)) { $oKey = $m[1]; $pKey = $m[2]; if (!array_key_exists($oKey, $objs)) { $objs[$oKey] = array(); } $objs[$oKey][$pKey] = $value; } } if (count($objs)) { foreach ($objs as $prop => $desc) { Params::arrayToObject($desc, $this->{$prop}); } } }