How to Use the Storage Emulator with the Windows Azure SDK for PHP
June 7, 2012 update: The Microsoft Windows Azure team has released a new Windows Azure SDK for PHP. This release is part of an effort to keep PHP client libraries up to date with new Windows Azure features and to make PHP a first-class citizen in Windows Azure. The latest client libraries are on GitHub: https://github.com/WindowsAzure/azure-sdk-for-php. While the SDK hosted on CodePlex will continue to work for the foreseeable future, it is strongly recommended that new PHP/Windows Azure application use the SDK hosted on GitHub.
The work done by Maarten Balliauw and other contributors in building the SDK hosted on CodePlex was critical in unifying the PHP developer experience for Windows Azure. The Windows Azure team is grateful to these contributors for their pioneering work and looks forward to their continued support (and yours!) in adding to the new SDK on GitHub.
The Windows Azure Team
This is a short post to address this question: How do I use the local Storage Emulator (formerly known as Development Storage) when using the Windows Azure SDK for PHP? The Windows Azure Command Line Tools for PHP provide an option for running an application locally in the Compute Emulator, but I didn’t see an option for using the local Storage Emulator. As it turns out, the answer is very simple, although somewhat difficult to find…
When constructing a new table, blob, or queue client, simply omit the constructor parameters:
// Create table, blob, and queue clients
// that use local development storage.
$tableClient = new Microsoft_WindowsAzure_Storage_Table();
$blobClient = new Microsoft_WindowsAzure_Storage_Blob();
$queueClient = new Microsoft_WindowsAzure_Storage_Queue();
Assuming you have installed all the prerequisites for using the Windows Azure SDK for PHP, that’s it. (You will have to start the Compute Emulator and Development Storage before testing your application.) The SDK has all the plumbing for utilizing the Storage Emulator. (I spent quite a bit of time trying to tweak Azure config files to get an application to use the Storage Emulator before realizing this.)
Testing an Azure application will have multiple phases, but initially testing against the local storage will save some storage costs. For more information about developing, testing, and deploying PHP applications to Windows Azure, check out these links:
- Differences between the Compute Emulator and Windows Azure
- Differences between the Storage Emulator and Windows Azure Storage Services
- Deploying Your First PHP Application with the Windows Azure Command Line Tools for PHP
- Accessing Windows Azure Table Storage from PHP
- Accessing Windows Azure Blob Storage from PHP
- Accessing Windows Azure Queues from PHP