Exemple #1
0
 protected function transformEmbedded(array $data)
 {
     $resource = new Resource();
     isset($data['attributes'][self::LINK_KEY_HREF]) && $resource->setURI($data['attributes'][self::LINK_KEY_HREF]);
     isset($data['attributes'][self::LINK_KEY_TITLE]) && $resource->setTitle($data['attributes'][self::LINK_KEY_TITLE]);
     $embeddeds = [];
     $links = [];
     $data2 = [];
     foreach ($data['values'] as &$node) {
         if ($this->nodeIsResource($node)) {
             $embeddeds[$node['attributes']['rel']][] = $this->transformEmbedded($node);
         } elseif ($this->nodeIsLink($node)) {
             $links[$node['attributes']['rel']][] = $this->transformLink($node);
         } else {
             if (is_array($node['values'])) {
                 $toSave = [];
                 foreach ($node['values'] as &$value) {
                     $toSave[$value['name']][] = $value['values'];
                 }
             } else {
                 $toSave = $node['values'];
             }
             $data2[$node['name']][] = $toSave;
         }
     }
     $resource->setData($data2);
     foreach ($links as $rel => $link) {
         $resource->setLinks($rel, $link);
     }
     foreach ($embeddeds as $rel => $embedded) {
         $resource->addResources($rel, $embedded);
     }
     return $resource;
 }
Exemple #2
0
 protected function transformEmbeddeds(Resource $resource, array $embeddedsByRel)
 {
     foreach ($embeddedsByRel as $rel => $data) {
         if ($this->isAssocArray($data)) {
             $embedded = $this->doTransformEmbedded($data);
             $resource->addResource($rel, $embedded);
         } else {
             $embeddeds = $this->doTransformEmbeddeds($data);
             $resource->addResources($rel, $embeddeds);
         }
     }
 }