/** * @param $object * @param bool $disableMappingExceptions * @param null $idMapper * @throws \Exception */ public function reverseMap($object, $disableMappingExceptions = false, $idMapper = null) { $keys = get_object_vars($this); foreach ($keys as $key => $value) { $method = "set" . $key; if (method_exists($object, $method)) { $object->{$method}($value); } } //must be after generic setters above!! parent::reverseMap($object, $disableMappingExceptions, $idMapper); if (is_array($this->elements)) { foreach ($this->elements as $element) { $class = $object->getClass(); $setter = "set" . ucfirst($element->name); if (method_exists($object, $setter)) { $tag = $class->getFieldDefinition($element->name); if ($tag) { if ($class instanceof Model\Object\ClassDefinition\Data\Fieldcollections) { $object->{$setter}($tag->getFromWebserviceImport($element->fieldcollection, $object, [], $idMapper)); } else { $object->{$setter}($tag->getFromWebserviceImport($element->value, $object, [], $idMapper)); } } else { \Logger::error("tag for field " . $element->name . " not found"); } } else { if (!$disableMappingExceptions) { throw new \Exception("No element [ " . $element->name . " ] of type [ " . $element->type . " ] found in class definition [" . $class->getId() . "] | " . $class->getName()); } } } } }
public function init() { if ($this->getParam("condense")) { Object\ClassDefinition\Data::setDropNullValues(true); Webservice\Data\Object::setDropNullValues(true); } $profile = $this->getParam("profiling"); if ($profile) { $startTs = microtime(true); } parent::init(); $this->disableViewAutoRender(); $this->service = new Webservice\Service(); // initialize json encoder by default, maybe support xml in the near future $this->encoder = new Webservice\JsonEncoder(); if ($profile) { $this->timeConsumedInit = round(microtime(true) - $startTs, 3) * 1000; } }