Installation guide
• PHP 5.3 namespaces
• Follows PSR-0, PSR-1, and PSR-2 standards
• Built on Guzzle and utilizes the Guzzle feature set
• Persistent connection management for both serial and parallel requests
• Event hooks (via Symfony2 EventDispatcher) for event-driven, custom behavior
• Request and response entity bodies are stored in php://temp streams to reduce memory usage
• Transient networking and cURL failures are automatically retried using truncated exponential backoff
• Plug-ins for over-the-wire logging and response caching
• "Waiter" objects that allow you to poll a resource until it is in a desired state
• Resource iterator objects for easily iterating over paginated responses
• Service-specific sets of exceptions
• Modeled responses with a simpler interface
• Grouped constants (Enums) for service parameter options
• Flexible request batching system
• Service builder/container that supports easy configuration and dependency injection
• Full unit test suite with extensive code coverage
• Composer support (including PSR-0 compliance) for installing and autoloading SDK dependencies
• Phing build.xml for installing dev tools, driving testing, and producing .phar files
• Fast Amazon DynamoDB batch PutItem and DeleteItem system
• Multipart upload system for Amazon Simple Storage Service (Amazon S3) and Amazon Glacier that can be
paused and resumed
• Redesigned DynamoDB Session Handler with smarter writing and garbage collection
• Improved multi-region support
What's Different?
Architecture
The new SDK is built on top of Guzzle and inherits its features and conventions. Every AWS service client extends
the Guzzle client, defining operations through a service description file. The SDK has a much more robust and
flexible object-oriented architecture, including the use of design patterns, event dispatching and dependency
injection. As a result, many of the classes and methods from the previous SDK have been changed.
Project Dependencies
Unlike the Version 1 of the SDK, the new SDK does not pre-package all of its dependencies in the repository.
Dependencies are best resolved and autoloaded via Composer. However, when installing the SDK via the
downloadable phar, the dependencies are resolved for you.
Namespaces
The SDK's directory structure and namespaces are organized according to PSR-0 standards, making the SDK
inherently modular. The Aws\Common namespace contains the core code of the SDK, and each service client is
contained in its own separate namespace (e.g., Aws\DynamoDb).
Coding Standards
Migration Guide
9