
* Queue Service
An example implementation of this can be found on CodePlex: [PHP SDK for Windows Azure|http://phpazure.codeplex.com] and in the ZF SVN laboratory.
{zone-data}
{zone-data:references}
* [Windows Azure|http://www.microsoft.com/Azure]
* [Blob Storage API reference|http://msdn.microsoft.com/en-us/library/dd135733.aspx]
* [Table Storage API reference|http://msdn.microsoft.com/en-us/library/dd179423.aspx]
* [Queue Storage API reference|http://msdn.microsoft.com/en-us/library/dd179363.aspx]
* [Phyton version of the API|http://github.com/sriramk/winazurestorage/blob/214010a2f8931bac9c96dfeb337d56fe084ca63b/winazurestorage.py]
{zone-data}
{zone-data:requirements}
* This component *will* allow the use of Windows Azure blob storage within PHP applications.
* This component *will* allow the use of Windows Azure table storage within PHP applications.
* This component *will* allow the use of Windows Azure queue storage within PHP applications.
* This component *will* use the RESTful API that Windows Azure provides.
* This component *will* throw Exceptions upon failure.
{zone-data}
{zone-data:dependencies}
This component has no dependencies on other Zend Framework components. It should be available for use in Zend Framework applications as well as standalone.
{zone-data}
{zone-data:operation}
The component will connect to the REST interface that Windows Azure offers (see references) and will provide convenient access to the services offered. The necessary classes for interacting with the RESTful services will be built, allowing for a transparent manner to integrate Windows Azure in a Zend Framework application.
{zone-data}
{zone-data:milestones}
* Milestone 1: Windows Azure Blob Storage API implementation
* Milestone 2: Windows Azure Table Storage API implementation
* Milestone 3: Windows Azure Queue Storage API implementation
Each milestone takes integration tests and documentation into account.
{zone-data}
{zone-data:class-list}
* Zend_Service_Azure
* Zend_Service_Azure_RetryPolicy
* Zend_Service_Azure_RetryPolicy_Exception
* Zend_Service_Azure_RetryPolicy_NoRetry
* Zend_Service_Azure_RetryPolicyRetryN
* Zend_Service_Azure_Storage
* Zend_Service_Azure_Storage_Batch
* Zend_Service_Azure_Storage_BatchStorage
* Zend_Service_Azure_Storage_Blob
* Zend_Service_Azure_Storage_BlobContainer
* Zend_Service_Azure_Storage_BlobInstance
* Zend_Service_Azure_Storage_DynamicTableEntity
* Zend_Service_Azure_Storage_Table
* Zend_Service_Azure_Storage_TableEntity
* Zend_Service_Azure_Storage_TableEntityQuery
* Zend_Service_Azure_Storage_TableInstance
* Zend_Service_Azure_Credentials
* Zend_Service_Azure_Exception
{zone-data}
{zone-data:use-cases}
||UC-01||
A script creates a new Zend_Service_Azure_Storage_Blob instance and uses it to upload, download and list blobs located on the Windows Azure Services Platform.
||UC-02||
A script creates a new Zend_Service_Azure_Storage_Table instance and uses it to store, retrieve, update and delete entities located on the Windows Azure Services Platform.
||UC-03||
A script creates a new Zend_Service_Azure_Storage_Table instance and uses it to store, retrieve, update and delete entities located on the Windows Azure Services Platform, encapsultaed in a Zend_Service_Azure_Storage_Batch instance which enables transaction support.
{zone-data}
{zone-data:skeletons}
{code}
class Zend_Service_Azure {
}
class Zend_Service_Azure_RetryPolicy {
}
class Zend_Service_Azure_RetryPolicy_Exception {
}
class Zend_Service_Azure_RetryPolicy_NoRetry {
}
class Zend_Service_Azure_RetryPolicyRetryN {
}
class Zend_Service_Azure_Storage {
}
class Zend_Service_Azure_Storage_Batch {
}
class Zend_Service_Azure_Storage_BatchStorage {
}
class Zend_Service_Azure_Storage_Blob {
public function createContainer();
public function getContainerAcl();
public function setContainerAcl();
public function getContainer();
public function getContainerMetadata();
public function setContainerMetadata();
public function deleteContainer();
public function listContainers();
public function putBlob();
public function putLargeBlob();
public function copyBlob();
public function getBlob();
public function getBlobInstance();
public function getBlobMetadata();
public function setBlobMetadata();
public function deleteBlob();
public function listBlobs();
}
class Zend_Service_Azure_Storage_BlobContainer {
}
class Zend_Service_Azure_Storage_BlobInstance {
}
class Zend_Service_Azure_Storage_DynamicTableEntity {
}
class Zend_Service_Azure_Storage_Table {
public function listTables();
public function createTable();
public function deleteTable();
public function insertEntity();
public function deleteEntity();
public function retrieveEntityById();
public function retrieveEntities();
public function updateEntity();
public function mergeEntity();
}
class Zend_Service_Azure_Storage_TableEntity {
}
class Zend_Service_Azure_Storage_TableEntityQuery {
}
class Zend_Service_Azure_Storage_TableInstance {
}
class Zend_Service_Azure_Credentials {
}
class Zend_Service_Azure_Exception {
}
{code}
{zone-data}
{zone-template-instance}[PHP SDK for Windows Azure|http://phpazure.codeplex.com]