Пример #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;
 }
Пример #2
0
 protected function transformSelfLink(Resource $resource, array $data)
 {
     isset($data[self::LINK_KEY_HREF]) && $resource->setURI($data[self::LINK_KEY_HREF]);
     isset($data[self::LINK_KEY_TITLE]) && $resource->setTitle($data[self::LINK_KEY_TITLE]);
 }