foreach ($users->user as $user) { echo $user->{'display-name'} . " (" . $user->username . ")\n"; } echo "\n"; // Create a new User $data = array('user' => array('username' => "jcricket", 'password' => "pinocchio", 'display_name' => "Jiminy Cricket", 'kind' => "Student")); $user = $pest->post('/users.xml', $data); echo "New User's ID: " . $user->id . "\n"; echo "\n"; // Update the newly created User's attributes $data = array('user' => array('kind' => "Instructor", 'metadata' => array('gender' => 'male', 'age' => 30))); $pest->put('/users/' . $user->id . '.xml', $data); // Retrieve the User $user = $pest->get('/users/' . $user->id . '.xml'); echo "User XML: \n"; echo $user->asXML(); echo "\n"; echo "Name: " . $user->{'display-name'} . "\n"; echo "Kind: " . $user->kind . "\n"; echo "Age: " . $user->metadata->age . "\n"; echo "\n"; // Delete the User $user = $pest->delete('/users/' . $user->id . '.xml'); // Try to create a User with invalid data (missing username) $data = array('user' => array('password' => "pinocchio", 'display_name' => "Jiminy Cricket", 'kind' => "Student")); try { $user = $pest->post('/users.xml', $data); } catch (Pest_InvalidRecord $e) { echo $e->getMessage(); echo "\n"; }
echo $user->{'display-name'} . " (" . $user->login . ")\n"; // You can also fetch a User by their login $login = '******'; try { $user2 = $pest->get('/users/' . $login . '.xml'); } catch (Pest_NotFound $e) { echo $e->getMessage(); } /** CREATE A NEW RESOURCE **/ // Note that the data array must be nested under a 'user' key. $data = array('user' => array('login' => "jdoe", 'display_name' => "John Doe", 'kind' => "Instructor", 'metadata' => array('hair colour' => 'Brown'))); $user = $pest->post('/users.xml', $data); echo $user->{'display-name'} . " (" . $user->login . ")\n"; $id = $user->id; /** UPDATE AN EXISTING RESOURCE **/ // Note that the 'metadata' part is arbitrary -- // you can use any key-value pair here. $data = array('user' => array('display_name' => "John Doe Jr.", 'kind' => "Student", 'metadata' => array('hair colour' => 'Green', 'age' => 12))); try { $pest->put('/users/' . $id . '.xml', $data); echo "User " . $id . " updated."; } catch (Pest_Exception $e) { echo "Couldn't update User " . $id . " because: " . $e->getMessage(); } /** DELETE A RESOURCE **/ try { $pest->delete('/users/' . $id . '.xml'); echo "User " . $id . " deleted."; } catch (Pest_Exception $e) { echo "Couldn't delete User " . $id . " because: " . $e->getMessage(); }