Wufoo PHP API Wrapper

This is a fork of the original Wufoo PHP library. This fork has tried to make the library more modern by using proper name spaces and exceptions. This class follows PSR2 and PSR4.
Chances are I have probably broken some stuff. I haven't tested everything and there is still work to do, but its a start....
The Wufoo PHP API plugin is meant to help make working with the Wufoo API easier for PHP developers. It doesn't do anything that working directly with the API can't do, it just provides an abstraction layer making getting the information you need easier.
Composer
To install Wufoo PHP API Wrapper as a Composer package add this to your composer.json:
"adamlc/wufoo-php-api-wrapper": "dev-master"
Run composer update
Basics
The API Wrapper is a collection of functions each for using a specific API. For example, this is how you would get data on your account's users:
$wrapper = new Adamlc\Wufoo\WufooApiWrapper($apiKey, $subdomain);
print_r($wrapper->getUsers());
Some APIs need more information to be able to return the information they are supposed to. For example, the Entries API needs to know what form to return data from. Each will be documented below.
Full API Documentation
Available here: http://wufoo.com/docs/api/v3/
Each API returns its own set of specific information which is all documented on Wufoo.com for reference.
Users
Information about all users:
$wrapper = new Adamlc\Wufoo\WufooApiWrapper('KUUI-22JI-ENID-IREW', 'yoursubdomain'));
print_r($wrapper->getUsers());
Full documentation: http://wufoo.com/docs/api/v3/users/
Forms
Information about all forms:
$wrapper = new Adamlc\Wufoo\WufooApiWrapper('KUUI-22JI-ENID-IREW', 'yoursubdomain');
print_r($wrapper->getForms($identifier = null));
Information about a specific form:
$wrapper = new Adamlc\Wufoo\WufooApiWrapper('KUUI-22JI-ENID-IREW', 'yoursubdomain');
print_r($wrapper->getForms($identifier = 'k4j9jw'));
Full documentation: http://wufoo.com/docs/api/v3/forms/
Entries
Entries from a form:
$wrapper = new Adamlc\Wufoo\WufooApiWrapper('KUUI-22JI-ENID-IREW', 'yoursubdomain');
print_r($wrapper->getEntries('k4j9jw', 'forms', 'Filter1=EntryId+Is_equal_to+1'));
Entries from a report:
$wrapper = new Adamlc\Wufoo\WufooApiWrapper('KUUI-22JI-ENID-IREW', 'yoursubdomain');
print_r($wrapper->getReportEntries('k4j9jw', 'Filter1=EntryId+Is_equal_to+1'));
Entries POST to a form:
$wrapper = new Adamlc\Wufoo\WufooApiWrapper('KUUI-22JI-ENID-IREW', 'yoursubdomain');
$postArray = array(new Adamlc\Wufoo\ValueObject\WufooSubmitField('Field1', 'Booyah!'), new Adamlc\Wufoo\ValueObject\WufooSubmitField('Field1', '/files/myFile.txt', $isFile = true));
print_r($wrapper->entryPost('f83u4d', $postArray));
Full documentation: http://wufoo.com/docs/api/v3/forms/post/
Full documentation: http://wufoo.com/docs/api/v3/entries/
Fields
Fields of a form:
$wrapper = new Adamlc\Wufoo\WufooApiWrapper('KUUI-22JI-ENID-IREW', 'yoursubdomain');
print_r($wrapper->getFields('j9js9r'));
Fields of a report:
$wrapper = new Adamlc\Wufoo\WufooApiWrapper('KUUI-22JI-ENID-IREW', 'yoursubdomain');
print_r($wrapper->getReportFields('j9js9r'));
Bear in mind that fields may have SubFields, as is the case when using Wufoo-provided fields like Name, which has First and Last as subfields. Testing for SubFields and looping through those within the main loop while processing the data is a good idea.
Full documentation: http://wufoo.com/docs/api/v3/fields/
Comments are entered in the Wufoo.com Entry Manager.
Get comments from a form:
$wrapper = new Adamlc\Wufoo\WufooApiWrapper('KUUI-22JI-ENID-IREW', 'yoursubdomain');
print_r($wrapper->getComments('j9js9r', $entryId = '1'));
Full documentation: http://wufoo.com/docs/api/v3/comments/
Reports
Information about all reports:
$wrapper = new Adamlc\Wufoo\WufooApiWrapper('KUUI-22JI-ENID-IREW', 'yoursubdomain');
print_r($wrapper->getReports());
Information about single form:
$wrapper = new Adamlc\Wufoo\WufooApiWrapper('KUUI-22JI-ENID-IREW', 'yoursubdomain');
print_r($wrapper->getReports('a5u8r9'));
Full documentation: http://wufoo.com/docs/api/v3/reports/
###Web Hook
Add a Web Hook to a form:
$wrapper = new Adamlc\Wufoo\WufooApiWrapper('KUUI-22JI-ENID-IREW', 'yoursubdomain');
print_r($wrapper->webHookPut('a5u8r9', 'http://coolguy.com/webhooker/', 'key', $metadata = false);
Delete a Web Hook from a form:
$wrapper = new Adamlc\Wufoo\WufooApiWrapper('KUUI-22JI-ENID-IREW', 'yoursubdomain');
print_r($wrapper->webHookDelete($formIdentifier = '432j83j', $hash = 'a5u8r9'));
Full documentation: http://wufoo.com/docs/api/v3/webhooks/