Gdata/App.php
LICENSE
+ +This source file is subject to the new BSD license that is bundled +with this package in the file LICENSE.txt. +It is also available through the world-wide-web at this URL: +http://framework.zend.com/license/new-bsd +If you did not receive a copy of the license and are unable to +obtain it through the world-wide-web, please send an email +to license@zend.com so we can send you a copy immediately.
- Category
- Zend + +
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + +
- License
- New BSD License + +
- Package
- Zend_Gdata + +
- Subpackage
- App + +
- Version
- $Id: App.php 25259 2013-02-13 17:38:12Z frosch $ + +
\Zend_Gdata_App
This class and all +other components of Zend_Gdata_App are designed to work independently from +other Zend_Gdata components in order to interact with generic APP services.
- Children
- \Zend_Gdata
- Category
- Zend + +
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + +
- License
- New BSD License + +
Constants
Properties

boolean $_httpMethodOverride = falsefalseDetails- Type
- boolean

$_majorProtocolVersionAt present, recognized values are either 1 or 2. However, any integer +value >= 1 is considered valid.
+ +Under most circumtances, this will be automatically set by +Zend_Gdata_App subclasses.
- Type
- n/a
- See
- \setMajorProtocolVersion() + +
- See
- \getMajorProtocolVersion() + +

int $_maxRedirects = 55Details- Type
- int

$_minorProtocolVersionCan be set +to either an integer >= 0, or NULL if no minor version should be sent +to the server.
+ +At present, this field is not used by any Google services, but may be +used in the future.
+ +Under most circumtances, this will be automatically set by +Zend_Gdata_App subclasses.
- Type
- n/a
- See
- \setMinorProtocolVersion() + +
- See
- \getMinorProtocolVersion() + +

array $_registeredPackages = array('Zend_Gdata_App_Extension', 'Zend_Gdata_App')array('Zend_Gdata_App_Extension', 'Zend_Gdata_App')Details- Type
- array

\Zend_Http_Client $_staticHttpClient = nullnullDetails
boolean $_useObjectMapping = truetrueDetails- Type
- boolean
Methods

__call(string $method, array $args) : voidProvides a magic factory method to instantiate new objects with +shorter syntax than would otherwise be required by the Zend Framework +naming conventions.
For instance, to construct a new +Zend_Gdata_Calendar_Extension_Color, a developer simply needs to do +$gCal->newColor(). For this magic constructor, packages are searched +in the same order as which they appear in the $_registeredPackages +array
| Name | Type | Description |
|---|---|---|
| $method | string | The method name being called |
| $args | array | The arguments passed to the call |
| Exception | Description |
|---|---|
| \Zend_Gdata_App_Exception |

__construct(\Zend_Http_Client $client = null, string $applicationId = 'MyCompany-MyApp-1.0') : voidCreate Gdata object
| Name | Type | Description |
|---|---|---|
| $client | \Zend_Http_Client | |
| $applicationId | string |

delete(mixed $data, $remainingRedirects = null) : voidDELETE entry with client object
| Name | Type | Description |
|---|---|---|
| $data | mixed | The Zend_Gdata_App_Entry or URL to delete |
| $remainingRedirects |
| Exception | Description |
|---|---|
| \Zend_Gdata_App_Exception | |
| \Zend_Gdata_App_HttpException | |
| \Zend_Gdata_App_InvalidArgumentException |

enableRequestDebugLogging(string $logfile) : voidThis method enables logging of requests by changing the +Zend_Http_Client_Adapter used for performing the requests.
NOTE: This will not work if you have customized the adapter +already to use a proxy server or other interface.
| Name | Type | Description |
|---|---|---|
| $logfile | string | The logfile to use when logging the requests |

generateIfMatchHeaderData( $data, $allowWeek) : string | nullReturns the data for an If-Match header based on the current Etag +property.
If Etags are not supported by the server or cannot be +extracted from the data, then null will be returned.
| Name | Type | Description |
|---|---|---|
| $data | ||
| $allowWeek |
| Type | Description |
|---|---|
| string | null | $data |

get(string $uri, array $extraHeaders = array()) : \Zend_Http_ResponseGET a URI using client object.
| Name | Type | Description |
|---|---|---|
| $uri | string | GET URI |
| $extraHeaders | array | Extra headers to add to the request, as an + array of string-based key/value pairs. + |
| Type | Description |
|---|---|
| \Zend_Http_Response |
| Exception | Description |
|---|---|
| \Zend_Gdata_App_HttpException |

getEntry(string $uri, string $className = 'Zend_Gdata_App_Entry') : string | \Zend_Gdata_App_EntryRetrieve entry as string or object
| Name | Type | Description |
|---|---|---|
| $uri | string | |
| $className | string | The class which is used as the return type |
| Type | Description |
|---|---|
| string | \Zend_Gdata_App_Entry | Returns string only if the object + mapping has been disabled explicitly + by passing false to the + useObjectMapping() function. |

getFeed(string $uri, string $className = 'Zend_Gdata_App_Feed') : string | \Zend_Gdata_App_FeedRetrieve feed as string or object
| Name | Type | Description |
|---|---|---|
| $uri | string | The uri from which to retrieve the feed |
| $className | string | The class which is used as the return type |
| Type | Description |
|---|---|
| string | \Zend_Gdata_App_Feed | Returns string only if the object + mapping has been disabled explicitly + by passing false to the + useObjectMapping() function. |

getHttpClient() : \Zend_Http_ClientGet the Zend_Http_Client object used for communication
| Type | Description |
|---|---|
| \Zend_Http_Client |

getMajorProtocolVersion() : intGet the major protocol version that is in use.
| Type | Description |
|---|---|
| int | The major protocol version in use. |
- See
- \_majorProtocolVersion + +

getMaxRedirects() : intGet the maximum number of redirects to follow during HTTP operations
| Type | Description |
|---|---|
| int | Maximum number of redirects to follow |

getMinorProtocolVersion() : \(int | \NULL)Get the minor protocol version that is in use.
| Type | Description |
|---|---|
| \(int | \NULL) | The major protocol version in use, or NULL if no + minor version is specified. |
- See
- \_minorProtocolVersion + +

getNextFeed(\Zend_Gdata_App_Feed $feed, string $className = null) : \Zend_Gdata_App_Feed | nullRetrieve next set of results based on a given feed.
| Name | Type | Description |
|---|---|---|
| $feed | \Zend_Gdata_App_Feed | The feed from which to + retreive the next set of results. |
| $className | string | (optional) The class of feed to be returned. + If null, the next feed (if found) will be the same class as + the feed that was given as the first argument. + |
| Type | Description |
|---|---|
| \Zend_Gdata_App_Feed | null | Returns a + Zend_Gdata_App_Feed or null if no next set of results + exists. |

getPreviousFeed(\Zend_Gdata_App_Feed $feed, string $className = null) : \Zend_Gdata_App_Feed | nullRetrieve previous set of results based on a given feed.
| Name | Type | Description |
|---|---|---|
| $feed | \Zend_Gdata_App_Feed | The feed from which to + retreive the previous set of results. |
| $className | string | (optional) The class of feed to be returned. + If null, the previous feed (if found) will be the same class as + the feed that was given as the first argument. + |
| Type | Description |
|---|---|
| \Zend_Gdata_App_Feed | null | Returns a + Zend_Gdata_App_Feed or null if no previous set of results + exists. |

getStaticHttpClient() : \Zend_Http_ClientGets the HTTP client object.
If none is set, a new Zend_Http_Client will be used.
| Type | Description |
|---|---|
| \Zend_Http_Client |

getVerboseExceptionMessages() : booleanGet whether to use verbose exception messages
In the case of HTTP errors, use the body of the HTTP response +in the exception message.
| Type | Description |
|---|---|
| boolean |

import(string $uri, \Zend_Http_Client $client = null, string $className = 'Zend_Gdata_App_Feed', bool $useObjectMapping = true) : string | \Zend_Gdata_App_FeedImports a feed located at $uri.
| Name | Type | Description |
|---|---|---|
| $uri | string | |
| $client | \Zend_Http_Client | The client used for communication |
| $className | string | The class which is used as the return type |
| $useObjectMapping | bool | Enable/disable the use of XML to object mapping. + |
| Type | Description |
|---|---|
| string | \Zend_Gdata_App_Feed | Returns string only if the fourth + parameter ($useObjectMapping) is set + to false. |
| Exception | Description |
|---|---|
| \Zend_Gdata_App_Exception |

importFile(string $filename, string $className = 'Zend_Gdata_App_Feed', string $useIncludePath = false) : \Zend_Gdata_App_FeedImports a feed from a file located at $filename.
| Name | Type | Description |
|---|---|---|
| $filename | string | |
| $className | string | The class which is used as the return type |
| $useIncludePath | string | Whether the include_path should be searched |
| Type | Description |
|---|---|
| \Zend_Gdata_App_Feed |
| Exception | Description |
|---|---|
| \Zend_Gdata_App_Exception |

importString(string $string, string $className = 'Zend_Gdata_App_Feed', $majorProtocolVersion = null, $minorProtocolVersion = null) : \Zend_Gdata_App_FeedImports a feed represented by $string.
| Name | Type | Description |
|---|---|---|
| $string | string | |
| $className | string | The class which is used as the return type |
| $majorProtocolVersion | ||
| $minorProtocolVersion |
| Type | Description |
|---|---|
| \Zend_Gdata_App_Feed |
| Exception | Description |
|---|---|
| \Zend_Gdata_App_Exception |

importUrl(string $url, string $className = 'Zend_Gdata_App_Feed', array $extraHeaders = array()) : string | \Zend_Gdata_App_FeedImports the specified URL (non-statically).
| Name | Type | Description |
|---|---|---|
| $url | string | The URL to import |
| $className | string | The class which is used as the return type |
| $extraHeaders | array | Extra headers to add to the request, as an + array of string-based key/value pairs. + |
| Type | Description |
|---|---|
| string | \Zend_Gdata_App_Feed | Returns string only if the object + mapping has been disabled explicitly + by passing false to the + useObjectMapping() function. |
| Exception | Description |
|---|---|
| \Zend_Gdata_App_Exception |

insertEntry(mixed $data, string $uri, string $className = 'Zend_Gdata_App_Entry', array $extraHeaders = array()) : \Zend_Gdata_App_EntryInserts an entry to a given URI and returns the response as a +fully formed Entry.
| Name | Type | Description |
|---|---|---|
| $data | mixed | The Zend_Gdata_App_Entry or XML to post |
| $uri | string | POST URI |
| $className | string | The class of entry to be returned. |
| $extraHeaders | array | Extra headers to add to the request, as an + array of string-based key/value pairs. + |
| Type | Description |
|---|---|
| \Zend_Gdata_App_Entry | The entry returned by the service after + insertion. |

performHttpRequest(string $method, string $url, array $headers = null, string $body = null, string $contentType = null, int $remainingRedirects = null) : \Zend_Http_ResponsePerforms a HTTP request using the specified method
| Name | Type | Description |
|---|---|---|
| $method | string | The HTTP method for the request - 'GET', 'POST', + 'PUT', 'DELETE' + |
| $url | string | The URL to which this request is being performed |
| $headers | array | An associative array of HTTP headers + for this request |
| $body | string | The body of the HTTP request |
| $contentType | string | The value for the content type + of the request body |
| $remainingRedirects | int | Number of redirects to follow if request + s results in one |
| Type | Description |
|---|---|
| \Zend_Http_Response | The response object |

post(mixed $data, string $uri = null, $remainingRedirects = null, string $contentType = null, array $extraHeaders = null) : \Zend_Http_ResponsePOST data with client object
| Name | Type | Description |
|---|---|---|
| $data | mixed | The Zend_Gdata_App_Entry or XML to post |
| $uri | string | POST URI |
| $remainingRedirects | ||
| $contentType | string | Content-type of the data + |
| $extraHeaders | array | Extra headers to add to the request, as an + array of string-based key/value pairs. + |
| Type | Description |
|---|---|
| \Zend_Http_Response |
| Exception | Description |
|---|---|
| \Zend_Gdata_App_Exception | |
| \Zend_Gdata_App_HttpException | |
| \Zend_Gdata_App_InvalidArgumentException |

prepareRequest(string $method, string $url = null, array $headers = array(), mixed $data = null, string $contentTypeOverride = null) : arrayProvides pre-processing for HTTP requests to APP services.
-
+
- Checks the $data element and, if it's an entry, extracts the XML, +multipart data, edit link (PUT,DELETE), etc. +
- If $data is a string, sets the default content-type header as +'application/atom+xml' if it's not already been set. +
- Adds a x-http-method override header and changes the HTTP method +to 'POST' if necessary as per getHttpMethodOverride() +
| Name | Type | Description |
|---|---|---|
| $method | string | The HTTP method for the request - 'GET', 'POST', + 'PUT', 'DELETE' + |
| $url | string | The URL to which this request is being performed, + or null if found in $data + |
| $headers | array | An associative array of HTTP headers for this + request |
| $data | mixed | The Zend_Gdata_App_Entry or XML for the + body of the request |
| $contentTypeOverride | string | The override value for the + content type of the request body |
| Type | Description |
|---|---|
| array | An associative array containing the determined + 'method', 'url', 'data', 'headers', 'contentType' |

put(mixed $data, string $uri = null, $remainingRedirects = null, string $contentType = null, array $extraHeaders = null) : \Zend_Http_ResponsePUT data with client object
| Name | Type | Description |
|---|---|---|
| $data | mixed | The Zend_Gdata_App_Entry or XML to post |
| $uri | string | PUT URI |
| $remainingRedirects | ||
| $contentType | string | Content-type of the data + |
| $extraHeaders | array | Extra headers to add to the request, as an + array of string-based key/value pairs. + |
| Type | Description |
|---|---|
| \Zend_Http_Response |
| Exception | Description |
|---|---|
| \Zend_Gdata_App_Exception | |
| \Zend_Gdata_App_HttpException | |
| \Zend_Gdata_App_InvalidArgumentException |

registerPackage(string $name) : voidAdds a Zend Framework package to the $_registeredPackages array.
This array is searched when using the magic __call method below +to instantiante new objects.
| Name | Type | Description |
|---|---|---|
| $name | string | The name of the package (eg Zend_Gdata_App) + |

retrieveAllEntriesForFeed(object $feed) : mixedRetrieve all entries for a feed, iterating through pages as necessary.
Be aware that calling this function on a large dataset will take a +significant amount of time to complete. In some cases this may cause +execution to timeout without proper precautions in place.
| Name | Type | Description |
|---|---|---|
| $feed | object | The feed to iterate through. |
| Type | Description |
|---|---|
| mixed | A new feed of the same type as the one originally + passed in, containing all relevent entries. |

setGzipEnabled(boolean $enabled = false) : voidToggle requesting gzip encoded responses
| Name | Type | Description |
|---|---|---|
| $enabled | boolean | Whether or not to enable gzipped responses |

setHttpClient(\Zend_Http_Client $client, $applicationId = 'MyCompany-MyApp-1.0') : \Zend_Gdata_AppSet the Zend_Http_Client object used for communication
| Name | Type | Description |
|---|---|---|
| $client | \Zend_Http_Client | The client to use for communication |
| $applicationId |
| Type | Description |
|---|---|
| \Zend_Gdata_App | Provides a fluent interface |
| Exception | Description |
|---|---|
| \Zend_Gdata_App_HttpException |

setHttpMethodOverride(boolean $override = true) : voidToggle using POST instead of PUT and DELETE HTTP methods
Some feed implementations do not accept PUT and DELETE HTTP +methods, or they can't be used because of proxies or other +measures. This allows turning on using POST where PUT and +DELETE would normally be used; in addition, an +X-Method-Override header will be sent with a value of PUT or +DELETE as appropriate.
| Name | Type | Description |
|---|---|---|
| $override | boolean | Whether to override PUT and DELETE with POST. |

setMajorProtocolVersion(int $value) : voidSet the major protocol version that should be used.
Values < 1 will +cause a Zend_Gdata_App_InvalidArgumentException to be thrown.
| Name | Type | Description |
|---|---|---|
| $value | int | The major protocol version to use. |
| Exception | Description |
|---|---|
| \Zend_Gdata_App_InvalidArgumentException |
- See
- \_majorProtocolVersion + +

setMaxRedirects(int $maxRedirects) : voidSet the maximum number of redirects to follow during HTTP operations
| Name | Type | Description |
|---|---|---|
| $maxRedirects | int | Maximum number of redirects to follow |

setMinorProtocolVersion(\(int | \NULL) $value) : voidSet the minor protocol version that should be used.
If set to NULL, no +minor protocol version will be sent to the server. Values < 0 will +cause a Zend_Gdata_App_InvalidArgumentException to be thrown.
| Name | Type | Description |
|---|---|---|
| $value | \(int | \NULL) | The minor protocol version to use. |
| Exception | Description |
|---|---|
| \Zend_Gdata_App_InvalidArgumentException |
- See
- \_minorProtocolVersion + +

setStaticHttpClient(\Zend_Http_Client $httpClient) : voidSet the static HTTP client instance
Sets the static HTTP client object to use for retrieving the feed.
| Name | Type | Description |
|---|---|---|
| $httpClient | \Zend_Http_Client |

setVerboseExceptionMessages(boolean $verbose) : voidSet whether to use verbose exception messages
In the case of HTTP errors, use the body of the HTTP response +in the exception message.
| Name | Type | Description |
|---|---|---|
| $verbose | boolean | Whether to use verbose exception messages |

updateEntry(mixed $data, string | null $uri = null, string | null $className = null, array $extraHeaders = array()) : \Zend_Gdata_App_EntryUpdate an entry
| Name | Type | Description |
|---|---|---|
| $data | mixed | Zend_Gdata_App_Entry or XML (w/ID and link rel='edit') + |
| $uri | string | null | The URI to send requests to, or null if $data + contains the URI. + |
| $className | string | null | The name of the class that should be deserialized + from the server response. If null, then 'Zend_Gdata_App_Entry' + will be used. + |
| $extraHeaders | array | Extra headers to add to the request, as an + array of string-based key/value pairs. + |
| Type | Description |
|---|---|
| \Zend_Gdata_App_Entry | The entry returned from the server |
| Exception | Description |
|---|---|
| \Zend_Gdata_App_Exception |

useObjectMapping(boolean $value) : voidEnable/disable the use of XML to object mapping.
| Name | Type | Description |
|---|---|---|
| $value | boolean | Pass in true to use the XML to object mapping. + Pass in false or null to disable it. |