public function testGettersCache() { $modelClosures = new ModelClosure(); $modelClosures->getFromModel(); $modelClosures->setToModel(); self::assertInstanceOf('\\Closure', $modelClosures->getFromModel()); self::assertInstanceOf('\\Closure', $modelClosures->setToModel()); }
/** * @param array $data * @param mixed $model * @param string $mapType * * @throws ParseException */ public function fillModel(array $data, $model, $mapType = 'dto') { $class = get_class($model); $map = $this->mapsManager->getMap($class, $mapType); $typeConverter = $this->getConverter(); $setModelFn = $this->fn->setToModel(); foreach ($data as $name => $val) { if (!array_key_exists($name, $map)) { continue; } $propRule = new PropRule($map[$name]); $val = $typeConverter->toModel($val, $propRule, $this); $setModelFn->call($model, $propRule->getSet(), $val, $propRule->getProp($name)); } }