setEmbedded() public method

public setEmbedded ( string $rel, Resource $resource = null, boolean $singular = false ) : Resource
$rel string
$resource Resource
$singular boolean
return Resource
コード例 #1
0
ファイル: User.php プロジェクト: ingewikkeld/rest-user-bundle
 /**
  * Returns all users in a single collection resource.
  *
  * @param string[] $options
  *
  * @return Resource
  */
 public function getCollection(array $options = array())
 {
     /** @var UserEntity[] $collection */
     $collection = $this->userManager->findUsers();
     $resource = new Resource($this->generateBrowseUrl(), array('count' => count($collection)));
     foreach ($collection as $element) {
         $resource->setEmbedded('user', $this->createResourceFromUser($element));
     }
     return $resource;
 }
コード例 #2
0
 /**
  * @param  array    $resourceInfo
  * @return Resource
  */
 public function process(array $resourceInfo)
 {
     $resource = new Resource($resourceInfo['links']['self'], $resourceInfo['data']);
     unset($resourceInfo['links']['self']);
     foreach ($resourceInfo['links'] as $key => $href) {
         $resource->setLink(new Link($href, $key));
     }
     if (isset($resourceInfo['embedded'])) {
         foreach ($resourceInfo['embedded'] as $rel) {
             foreach ($rel as $rel => $data) {
                 $resource->setEmbedded($rel, new Resource($data['links']['self'], $data['data']));
             }
         }
     }
     return $resource;
 }
コード例 #3
0
ファイル: LinkTest.php プロジェクト: zircote/hal
    public function testTemplatedLink()
    {
        $fixture = <<<'EOF'
{
    "_links":{
        "self":{
            "href":"/dogs"
        },
        "search":{
            "href":"/dogs?q={text}",
            "templated": true
        }
    }, "_embedded":{
        "dog":[
            {
                "_links":{
                    "self":{
                        "href":"/dogs\/1"
                    }
                },
                "id":"1",
                "name":"tiber",
                "color":"black"
            },
            {
                "_links":{
                    "self":{
                        "href":"/dogs\/2"
                    }
                },
                "id":"2",
                "name":"sally",
                "color":"white"
            },
            {
                "_links":{
                    "self":{
                        "href":"/dogs\/3"
                    }
                },
                "id":"3",
                "name":"fido",
                "color":"gray"
            }
        ]
    }
}
EOF;
        $parent = new Resource('/dogs');
        /* Add any relevent links */
        $parent->setLink(new Link('/dogs?q={text}', 'search', null, null, null, true));
        $dogs[1] = new Resource('/dogs/1');
        $dogs[1]->setData(array('id' => '1', 'name' => 'tiber', 'color' => 'black'));
        $dogs[2] = new Resource('/dogs/2', array('id' => '2', 'name' => 'sally', 'color' => 'white'));
        $dogs[3] = new Resource('/dogs/3', array('id' => '3', 'name' => 'fido', 'color' => 'gray'));
        /* Add the embedded resources */
        foreach ($dogs as $dog) {
            $parent->setEmbedded('dog', $dog);
        }
        $this->assertEquals(json_decode($fixture), json_decode((string) $parent));
    }
コード例 #4
0
ファイル: ResourceTest.php プロジェクト: zircote/hal
    /**
     * This tests adding an empty resource
     */
    public function testEmptyResource()
    {
        $fixture = <<<'EOF'
{
    "_links":{
        "self":{
            "href":"/dogs"
        },
        "search":{
            "href":"/dogs?q={text}"
        }
    }, "_embedded":{
        "dog":[]
    }
}
EOF;
        $parent = new Resource('/dogs');
        $parent->setLink(new Link('/dogs?q={text}', 'search'));
        $parent->setEmbedded('dog', null);
        $this->assertEquals(json_decode($fixture), json_decode((string) $parent));
    }