コード例 #1
0
ファイル: Concrete.php プロジェクト: solverat/pimcore
 /**
  * @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());
                 }
             }
         }
     }
 }
コード例 #2
0
 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;
     }
 }