Skip to content

zircote/Hal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e988819 · Apr 25, 2015

History

82 Commits
Oct 28, 2014
Apr 3, 2013
Oct 28, 2014
Mar 27, 2013
Jul 8, 2012
Apr 7, 2012
Mar 8, 2012
Apr 3, 2013
Jul 8, 2012
Apr 25, 2015
Apr 3, 2013
Dec 16, 2013

Repository files navigation

Hal

Build Status

<?php
use Hal\Resource,
    Hal\Link;
/* Create a new Resource Parent */
$parent = new Resource('/dogs');
/* Add any relevent links */
$parent->setLink(new Link('/dogs?q={text}', 'search'));
$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);
}
echo (string) $parent;

Result:

{
  "_links":{
		"self":{
			"href":"\/dogs"
		},
		"search":{
			"href":"\/dogs?q={text}"
		}
	},
	"_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"
			}
		]
	}
}

Generating XML output

<?php
echo $parent->getXML()->asXML();

Result:

<?xml version="1.0"?>
<resource href="/dogs">
    <link href="/dogs?q={text}" rel="search" />
    <resource href="/dogs/1" rel="dog">
        <id>1</id>
        <name>tiber</name>
        <color>black</color>
    </resource>
    <resource href="/dogs/2" rel="dog">
        <id>2</id>
        <name>sally</name>
        <color>white</color>
    </resource>
    <resource href="/dogs/3" rel="dog">
        <id>3</id>
        <name>fido</name>
        <color>gray</color>
    </resource>
</resource>

Bitdeli Badge